FR2829266A1 - Circuit integre a semiconducteurs ayant une fonction de crypteur/decrypteur pour proteger des donnees d'entree/ sortie transmises sur un bus interne - Google Patents

Circuit integre a semiconducteurs ayant une fonction de crypteur/decrypteur pour proteger des donnees d'entree/ sortie transmises sur un bus interne Download PDF

Info

Publication number
FR2829266A1
FR2829266A1 FR0207932A FR0207932A FR2829266A1 FR 2829266 A1 FR2829266 A1 FR 2829266A1 FR 0207932 A FR0207932 A FR 0207932A FR 0207932 A FR0207932 A FR 0207932A FR 2829266 A1 FR2829266 A1 FR 2829266A1
Authority
FR
France
Prior art keywords
data
circuit
bits
bit
data bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0207932A
Other languages
English (en)
Other versions
FR2829266B1 (fr
Inventor
Chan Yong Kim
Jong Rok Kim
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of FR2829266A1 publication Critical patent/FR2829266A1/fr
Application granted granted Critical
Publication of FR2829266B1 publication Critical patent/FR2829266B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/34Bits, or blocks of bits, of the telegraphic message being interchanged in time

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Accounting & Taxation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Finance (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

Un circuit intégré à semiconducteurs (100) comprend : un premier circuit (110); un deuxième circuit (120); un bus de données (130); et des premier et deuxième circuits de cryptage/ décryptage (112, 122) pour crypter/ décrypter des données transmises entre les premier et deuxième circuits (110, 120) sur le bus de données (130). Le circuit de cryptage/ décryptage (112) sert à crypter des données délivrées en sortie du premier circuit (110), à délivrer en sortie les données cryptées au bus de données (130), à décrypter des données cryptées reçues du circuit de cryptage/ décryptage (122), et à délivrer les données décryptées au premier circuit (110). Le circuit de cryptage/ décryptage (122) sert à décrypter les données cryptées reçues du circuit de cryptage/ décryptage (112), à délivrer les données décryptées au deuxième circuit (120), à crypter des données délivrées en sortie du deuxième circuit (120), et à délivrer en sortie les données cryptées au bus de données (130).

Description

<Desc/Clms Page number 1>
La présente invention concerne un circuit intégré à semiconducteurs, et, plus particulièrement, un circuit intégré à semiconducteurs ayant une fonction de crypteur/décrypteur pour protéger des données d'entrée/sortie transmises sur un bus interne.
L'utilisation de cartes en matière plastique telles que des cartes de crédit ou des cartes bancaires pour effectuer, par exemple, des transactions financières, devient de plus en plus répandue. Comme cela est bien connu, une carte en matière plastique comprenant une carte magnétique ne peut pas mémoriser une grande quantité de données, et comporte un problème de sécurité. Comme la technologie à semiconducteurs a été remarquablement développée, la taille des circuits intégrés a été considérablement réduite. Par conséquent, des cartes en matière plastique comportant une pastille de circuits intégrés (appelées "cartes à puce") ont été développées pour remplacer la carte magnétique classique. La carte à puce peut mémoriser une très grande quantité de données, et comporte des avantages telles qu'une sécurité et une durée de vie améliorées. Par conséquent, la carte à puce a été utilisée pour différents usages, par exemple comme carte d'identification, comme carte d'assurance de santé, et comme carte bancaire.
Comme des données importantes, telles qu'un numéro de carte de crédit, un numéro d'enregistrement de résident, un numéro de compte bancaire, et un mot de code, sont mémorisées dans le circuit intégré d'une carte à puce, la sécurité concernant les données mémorisées dans le circuit intégré est très importante.
La figure 1 est un schéma d'un exemple de circuit intégré pour une carte à puce. Un circuit intégré 10 dans la carte à puce comprend une unité de traitement central (UC) ou un processeur 11 tel qu'un microprocesseur, une mémoire vive (RAM) 13, une mémoire morte (ROM) 14, une mémoire morte programmable et effaçable électriquement
<Desc/Clms Page number 2>
(EEPROM) 15, et un dispositif de commande d'entrée/sortie 12. Les blocs de circuits dans le circuit intégré 10 sont connectés les uns aux autres par l'intermédiaire d'un bus de système 16, de façon à émettre et à recevoir ainsi des données, des programmes et des codes de commande.
Les personnes ayant une bonne connaissance de la technique concernant les circuits intégrés peuvent facilement distinguer des blocs de circuits à partir d'un bus du système et de données de contrôle chargées dans le bus du système en utilisant des moyens prédéterminés. Si les données émises et reçues parmi les blocs de circuits sont exposées à un pirate informatique et violées, on rencontre un grave problème social.
Par conséquent, il est hautement souhaitable qu'une carte à puce qui est utilisée comme carte de crédit, comme carte d'assurance de santé, et comme carte d'identification, possède des fonctions susceptibles de préserver la sécurité des données émises et reçues entre les blocs de circuits internes.
On propose un circuit intégré à semiconducteurs, qui comprend : un premier circuit ; un deuxième circuit ; un bus de données ; et des premier et deuxième circuits de cryptage/décryptage pour crypter/décrypter les données transmises entre les premier et deuxième circuits sur le bus de données, dans lequel le premier circuit de cryptage/décryptage sert à crypter des données délivrées en sortie du premier circuit, à délivrer en sortie les données cryptées au bus de données, à décrypter et crypter les données reçues depuis le deuxième circuit de cryptage/décryptage, et à délivrer les données décryptées au premier circuit ; et le deuxième circuit de cryptage/décryptage sert à décrypter des données cryptées reçues depuis le premier circuit de cryptage/décryptage, à délivrer les données décryptées au deuxième circuit, à crypter la sortie de données venant du deuxième circuit, et à délivrer en sortie les données cryptées au bus de données.
<Desc/Clms Page number 3>
Selon une forme de réalisation de la présente invention, le circuit intégré à semiconducteurs comprend de plus un générateur de nombres aléatoires pour générer un nombre aléatoire en réponse à un signal d'horloge, et délivrer le nombre aléatoire au premier circuit de cryptage/décryptage et au deuxième circuit de cryptage/décryptage pour commander l'exécution des opérations de cryptage et de décryptage. Le générateur de nombres aléatoires est inclus dans un bloc de circuits associé à l'un parmi le premier circuit de cryptage/décryptage et le deuxième circuit de cryptage/décryptage.
On propose également un circuit intégré à semiconducteurs, qui comprend : un premier bloc de circuits comprenant un circuit de processeur ; un deuxième bloc de circuits comprenant un circuit de mémorisation ; et un bus de données pour transmettre des données entre les premier et deuxième blocs de circuits, dans lequel le premier bloc de circuits comprend de plus un générateur de nombres aléatoires pour générer un nombre aléatoire en réponse à un signal d'horloge, et un premier circuit de cryptage/décryptage pour crypter des données délivrées en sortie du circuit de processeur selon un nombre aléatoire généré par le générateur de nombres aléatoires, délivrer en sortie les données cryptées au bus de données, décrypter les données cryptées reçues depuis le circuit de mémorisation sur le bus de données, et délivrer les données décryptées au circuit de processeur ; et dans lequel le deuxième bloc de circuits comprend de plus un deuxième circuit de cryptage/décryptage pour décrypter les données cryptées reçues depuis le circuit de processeur sur le bus de données en fonction d'un nombre aléatoire généré à partir du générateur de nombres aléatoires, délivrer les données décryptées au circuit de mémorisation, crypter les données délivrées en sortie du circuit de mémorisation en fonction du nombre aléatoire, et délivrer en sortie les données cryptées au bus de données.
<Desc/Clms Page number 4>
On propose également un circuit intégré à semiconducteurs, qui comprend : un premier circuit ; un deuxième circuit ; un bus de données pour transmettre une pluralité de bits de données entre les premier et deuxième circuits ; un générateur de nombres aléatoires pour générer un nombre aléatoire en réponse à un signal d'horloge ; un premier brouilleur pour changer un groupement de la pluralité des bits de données délivrés en sortie du premier circuit en fonction du nombre aléatoire, délivrer en sortie le groupement changé au bus de données, rétablir un groupement de la pluralité de bits de données reçus depuis le deuxième circuit sur le bus de données en un groupement original en fonction du nombre aléatoire, et délivrer le groupement rétabli au premier circuit, et un deuxième brouilleur pour rétablir le groupement de la pluralité de bits de données reçus depuis le premier circuit sur le bus de données en un groupement original en fonction du nombre aléatoire, délivrer le groupement rétabli au deuxième circuit, changer le groupement de la pluralité de bits de données délivrés en sortie du deuxième circuit en fonction du nombre aléatoire, et délivrer en sortie le groupement changé au bus de données.
Selon une forme de réalisation de la présente invention, la pluralité de bits de données sont N bits, N étant un entier. Le premier brouilleur comprend : un premier générateur pour générer des premiers signaux de sélection correspondant au nombre aléatoire ; et un premier changeur de groupement de bits pour changer le groupement de la pluralité de bits de données délivrés en sortie du premier circuit en fonction des premiers signaux de sélection, délivrer en sortie le groupement changé au bus de données, rétablir le groupement de la pluralité de bits de données reçus depuis le deuxième circuit sur le bus de données en le groupement original en fonction des premiers signaux de sélection, et délivrer le groupement rétabli au premier circuit. Le premier changeur de groupement de bits
<Desc/Clms Page number 5>
comprend une pluralité de premiers circuits de commutation correspondant à l'émission et à la réception de la pluralité de bits de données, respectivement, chacun de la pluralité de premiers circuits de commutation servant à connecter un bit correspondant de la pluralité de bits de données délivrés en entrée/sortie vers/depuis le premier circuit à un bit correspondant des premiers signaux de sélection parmi les bits du bus de données. Chacun de la pluralité de premiers circuits de commutation : délivre en sortie un bit correspondant de la pluralité de bits de données délivrés en sortie du premier circuit lorsque des données sont délivrées en sortie du premier circuit, sous la forme d'un bit correspondant aux premiers signaux de sélection parmi les bits du bus de données, et délivre un bit correspondant aux premiers signaux de sélection parmi les bits de données chargés dans le bus de données lorsque des données sont entrées depuis le bus de données, sous la forme d'un bit correspondant de la pluralité de bits de données délivrés en entrée au premier circuit. Chacun de la pluralité de premiers circuits de commutation comprend une pluralité de commutateurs qui sont connectés entre une pluralité de bits du bus de données et un bit correspondant de la pluralité de bits de données délivrés en entrée/sortie vers/depuis le premier circuit, respectivement, pour un fonctionnement en réponse aux premiers signaux de sélection. Le deuxième brouilleur comprend : un deuxième générateur pour générer des deuxièmes signaux de sélection correspondant au nombre aléatoire ; et un deuxième changeur de groupement de bits pour rétablir le groupement de la pluralité de bits de données reçus depuis le premier circuit sur le bus de données en le groupement original en fonction des deuxièmes signaux de sélection, délivrer le groupement rétabli au deuxième circuit, changer le groupement de bits de données délivrés en sortie depuis le deuxième circuit en fonction des deuxièmes signaux de sélection, et délivrer en sortie
<Desc/Clms Page number 6>
le groupement changé au bus de données. Les premiers signaux de sélection et les deuxièmes signaux de sélection sont identiques entre eux. Le deuxième changeur de groupement de bits comprend une pluralité de deuxièmes circuits de commutation correspondant aux bits de données émis et reçus, chacun des deuxièmes circuits de commutation servant à connecter un bit correspondant parmi les bits de données délivrés en entrée/sortie vers/depuis le deuxième circuit à des bits correspondant aux deuxièmes signaux de sélection parmi les bits du bus de données.
Selon une forme de réalisation de la présente invention, chacun des deuxièmes circuits de commutation : délivre en sortie un bit correspondant parmi les bits de données délivrés en sortie du deuxième circuit lorsque des données sont délivrées en sortie du deuxième circuit, sous la forme d'un bit correspondant aux deuxièmes signaux de sélection parmi les bits du bus de données, et délivre un bit correspondant aux deuxièmes signaux de sélection parmi les bits de données chargés sur le bus de données lorsque des données sont entrées depuis le bus de données, sous la forme d'un bit correspondant parmi les bits de données entrés dans le deuxième circuit. Chacun des deuxièmes circuits de commutation comprend une pluralité de commutateurs qui sont connectés entre une pluralité de bits du bus de données et un bit correspondant des bits de données délivrés en entrée/sortie vers/depuis le deuxième circuit, respectivement, pour un fonctionnement en réponse aux deuxièmes signaux de sélection.
On propose également une carte à puce qui comprend : un premier circuit ; un deuxième circuit ; un bus de données pour transmettre une pluralité de bits de données entre les premier et deuxième circuits ; un générateur de nombres aléatoires pour générer un nombre aléatoire en réponse à un signal d'horloge ; un premier brouilleur pour changer un groupement de la pluralité de bits de données délivrés en sortie depuis le premier circuit en fonction du nombre
<Desc/Clms Page number 7>
aléatoire, délivrer en sortie le groupement changé au bus de données, rétablir un groupement de la pluralité de bits de données reçus depuis le deuxième circuit sur le bus de données en un groupement original en fonction du nombre aléatoire, et délivrer le groupement rétabli au premier circuit ; et un deuxième brouilleur pour rétablir un groupement de la pluralité de bits de données reçus depuis le premier circuit sur le bus de données en un groupement original en fonction du nombre aléatoire, délivrer les données rétablies au deuxième circuit, changer un groupement de la pluralité de bits de données délivrés en sortie du deuxième circuit en fonction du nombre aléatoire, et délivrer en sortie le groupement changé au bus de données.
On propose également un circuit intégré à semiconducteurs, qui comprend : un premier circuit ; un deuxième circuit ; un bus de données pour transmettre une pluralité de bits de données entre les premier et deuxième circuits ; un générateur de nombres aléatoires pour générer un nombre aléatoire en réponse à un signal d'horloge ; un premier brouilleur pour changer partiellement un groupement de la pluralité de bits de données délivrés en sortie depuis le premier circuit en fonction du nombre aléatoire et délivrer en sortie le groupement changé au bus de données ; et un deuxième brouilleur pour rétablir les bits de données du groupement dont le groupement a été changé par le premier brouilleur, parmi les bits de données entrés depuis le premier circuit par l'intermédiaire du bus de données en fonction du nombre aléatoire, en un groupement original, délivrer le groupement rétabli au deuxième circuit, changer partiellement un groupement parmi des bits de données délivrés en sortie du deuxième circuit en fonction du nombre aléatoire, et délivrer en sortie le groupement changé au bus de données, dans lequel le premier brouilleur rétablit certains bits dont le groupement a été changé par le deuxième brouilleur, parmi les bits de
<Desc/Clms Page number 8>
données entrés depuis le deuxième circuit sur le bus de données en fonction du nombre aléatoire, en un groupement original, et délivre le groupement rétabli au premier circuit.
Selon une forme de réalisation de la présente invention, le premier brouilleur comprend : un premier générateur pour générer des premiers signaux de sélection correspondant au nombre aléatoire ; et un premier changeur de groupement de bits pour changer partiellement le groupement de bits de données délivrés en sortie du premier circuit en fonction des premiers signaux de sélection, délivrer en sortie le groupement changé au bus de données, rétablir le groupement de certains bits dont le groupement a été changé par le deuxième brouilleur, parmi des bits de données entrés depuis le deuxième bloc de circuits par l'intermédiaire du bus de données en fonction des premiers signaux de sélection, en un groupement original, et délivrer le groupement rétabli au premier circuit. Le deuxième brouilleur comprend : un deuxième générateur pour générer des deuxièmes signaux de sélection correspondant au nombre aléatoire ; et un deuxième changeur de groupement de bits pour rétablir le groupement de certains bits dont le groupement a été changé par le premier brouilleur, parmi les bits de données entrés depuis le premier circuit sur le bus de données en le groupement original en fonction des deuxièmes signaux de sélection, délivrer le groupement rétabli au deuxième circuit, changer partiellement le groupement de bits de données délivré en sortie du deuxième circuit en fonction des deuxièmes signaux de sélection, et délivrer en sortie le groupement changé au bus de données.
Les données émises et reçues entre les premier et deuxième circuits par l'intermédiaire du bus de données comprennent N bits, et les bits dont le groupement de bits a été changé/rétabli par les premier et deuxième changeurs de groupement de bits, parmi les données à N bits, sont K bits d'ordre inférieur (K < N), K et N étant des entiers. Le
<Desc/Clms Page number 9>
premier changeur de groupement de bits comprend une pluralité de premiers circuits de commutation correspondant à des bits des données à K bits, chacun des premiers circuits de commutation servant à connecter des bits correspondant à des K bits d'ordre inférieur des données délivrées en entrée/sortie vers/depuis le premier circuit, à un bit correspondant aux premiers signaux de sélection parmi K bits d'ordre inférieur du bus de données. Chacun des premiers circuits de commutation : délivre en sortie un bit correspondant parmi K bits d'ordre inférieur de données délivrées en sortie depuis le premier circuit lorsque des données sont délivrées en sortie depuis le premier circuit, sous la forme d'un bit correspondant aux premiers signaux de sélection parmi K bits d'ordre inférieur du bus de données, et délivre un bit correspondant aux premiers signaux de sélection parmi des bits de données chargés sur le bus de données lorsque des données sont entrées à partir du bus de données, sous la forme d'un bit correspondant parmi des bits de données délivrés en entrée au premier circuit. Chacun des premiers circuits de commutation comprend une pluralité de commutateurs qui sont connectés entre K bits d'ordre inférieur du bus de données et un bit correspondant de K bits d'ordre inférieur des données délivrées en entrée/sortie vers/depuis le premier circuit, respectivement, pour un fonctionnement en réponse aux premiers signaux de sélection. Le deuxième changeur de groupement de bits comprend une pluralité de deuxièmes circuits de commutation correspondant à des données à K bits, respectivement, chacun des deuxièmes circuits de commutation servant à connecter un bit correspondant parmi K bits d'ordre inférieur de données délivrées en entrée/sortie vers/depuis le deuxième circuit, à un bit correspondant aux deuxièmes signaux de sélection parmi K bits d'ordre inférieur du bus de données. Chacun des deuxièmes circuits de commutation : délivre en sortie un bit correspondant parmi K bits d'ordre inférieur de données
<Desc/Clms Page number 10>
délivrées en sortie depuis le deuxième circuit lorsque des données sont délivrées en sortie du deuxième circuit, sous la forme d'un bit correspondant aux deuxièmes signaux de sélection parmi K bits d'ordre inférieur du bus de données, et délivre un bit correspondant aux deuxièmes signaux de sélection parmi K bits d'ordre inférieur de données chargées sur le bus de données lorsque des données sont entrées depuis le bus de données, sous la forme d'un bit correspondant parmi K bits d'ordre inférieur de données entrées dans le deuxième circuit. Chacun des deuxièmes circuits de commutation comprend une pluralité de commutateurs qui sont connectés entre K bits d'ordre inférieur du bus de données et un bit correspondant parmi K bits d'ordre inférieur de données délivrées en entrée/sortie vers/depuis le deuxième circuit, respectivement, pour un fonctionnement en réponse aux deuxièmes signaux de sélection.
On propose un procédé pour transmettre des données internes d'un dispositif de mémoire à semiconducteurs comportant une pastille constituée par un premier bloc de circuits, un deuxième bloc de circuits, et un bus de données pour transmettre des données entre les premier et deuxième blocs de circuits, le procédé comprenant les étapes suivantes : la délivrance en sortie de données à l'aide du premier bloc de circuits ; le changement d'un groupement de bits des données délivrées en sortie à partir du premier bloc de circuits ; la transmission des données dont le groupement de bits est changé au bus de données ; le rétablissement d'un groupement de bits de données chargées sur le bus de données en un groupement original ; et la délivrance en sortie des données dont le groupement de bits est rétabli au deuxième bloc de circuits.
Selon une forme de réalisation de la présente invention, l'étape de changement du groupement de bits change certains bits parmi les données délivrées en sortie à partir du deuxième bloc de circuits, et l'étape de
<Desc/Clms Page number 11>
rétablissement du groupement de bits rétablit les bits dont le groupement de bits a été changé au cours de l'étape de changement du groupement de bits, parmi les données chargées dans le bus de données, en le groupement original.
Le procédé comprend de plus les étapes suivantes : la délivrance en sortie de données à l'aide du deuxième bloc de circuits ; le changement d'un groupement de bits des données délivrées en sortie à partir du deuxième circuit ; la transmission des données dont le groupement de bits est changé sur le bus de données ; le rétablissement d'un groupement de bits de données chargées sur le bus de données en un groupement original ; et la délivrance en entrée des données dont le groupement de bits est rétabli au premier bloc de circuits. L'étape de changement du groupement de bits de données change certains bits parmi les données délivrées en sortie du deuxième bloc de circuits, et l'étape de rétablissement du bit rétablit les bits dont le groupement de bits a été changé au cours de l'étape de changement du groupement de bits en le groupement original.
Les objets et avantages ci-dessus de la présente invention apparaîtront de façon plus évidente grâce à une description détaillée de formes de réalisation préférées de celle-ci, en se référant aux dessins joints, dans lesquels : la figure 1 est un schéma pour un exemple de circuit intégré qui peut être utilisé dans une carte à puce ; la figure 2 est un schéma illustrant une structure d'un circuit intégré pour une carte à puce selon une forme de réalisation préférée de la présente invention ; la figure 3 est un schéma général illustrant des architectures des premier et deuxième brouilleurs de la figure 2 selon des formes de réalisation de la présente invention ; la figure 4 est un schéma général illustrant une architecture des premier et deuxième changeurs de
<Desc/Clms Page number 12>
groupement de bits de la figure 3 selon des formes de réalisation de la présente invention ; la figure 5 est un schéma illustrant une architecture de circuit des parties de commutation de la figure 4 selon une forme de réalisation de la présente invention ; la figure 6A est un exemple de graphique montrant des changements de position de bits de données en fonction de nombres aléatoires générés à partir d'un générateur de nombres aléatoires lorsque des données délivrées en sortie d'une unité centrale sont transmises à une mémoire vive ; et la figure 6B est un exemple de graphique montrant des changements de position de bits de données en fonction d'un nombre aléatoire généré à partir d'un générateur de nombres aléatoires lorsque des données délivrées en sortie d'une mémoire vive sont transmises à une unité centrale.
La présente invention va à présent être décrite plus complètement ci-après en se référant aux dessins joints, dans lesquels des formes de réalisation préférées de l'invention sont représentées. Cependant, cette invention peut être mise en oeuvre sous différentes formes et ne devrait pas être considérée comme étant limitée aux formes de réalisation exposées ici. Ces formes de réalisation sont plutôt données de façon à ce que cette description soit approfondie et complète, et transmettront complètement l'étendue de l'applicabilité de l'invention aux personnes ayant une bonne connaissance de la technique.
La figure 2 est un schéma illustrant une structure d'un circuit intégré pour une carte à puce selon une forme de réalisation préférée de la présente invention. Un circuit intégré 100 comprend un bloc de circuits d'unité centrale 110 comportant une unité centrale 111, un bloc de circuits de mémoire vive 120 comportant une mémoire vive, et un bus de données 130 pour émettre et recevoir des données entre les blocs de circuits d'unité centrale et de mémoire vive 110 et 120. Selon une forme de réalisation de la présente
<Desc/Clms Page number 13>
invention, les données émises et reçues entre le bloc de circuits d'unité centrale 110 et le bloc de circuits de mémoire vive 120 comprend des blocs de 8 bits. Cependant, on doit comprendre que la largeur de bits des données émises et reçues entre les blocs de circuits 110 et 120 peut changer de façon variable. Egalement, bien que la présente forme de réalisation illustre et explique des circuits pour protéger des données émises et reçues entre l'unité centrale 111 et la mémoire vive 121, on doit apprécier le fait que la présente invention peut être appliquée pour protéger toutes les données émises et reçues entre des blocs de circuits d'un circuit intégré, ainsi que les données émises et reçues entre l'unité centrale et la mémoire vive.
Le bloc de circuits d'unité centrale 110 comprend de plus un premier brouilleur 112, et un générateur de nombres aléatoires 113. Le générateur de nombres aléatoires 113 génère un nombre aléatoire à 4 bits en réponse à un signal d'horloge CLK. Le premier brouilleur 112 change un groupement de 4 bits d'ordre inférieur DATA~A[3:0] parmi des données à 8 bits délivrées en sortie de l'unité centrale 111 en fonction du nombre aléatoire, délivre en sortie le groupement changé au bus de données 130, rétablit un groupement de bits de données, délivré en entrée depuis le bloc de circuits de mémoire vive 120 par l'intermédiaire du bus de données 130, en un groupement original, et délivre le groupement rétabli à l'unité centrale 111.
Le bloc de circuits de mémoire vive 120 comprend de plus un deuxième brouilleur 122. Le deuxième brouilleur 122 rétablit un groupement de données à 4 bits, entré à partir du bloc de circuits d'unité centrale 110 par l'intermédiaire du bus de données 130 en fonction d'un nombre aléatoire généré à partir du générateur de nombres aléatoires 113, en un groupement original. Le deuxième brouilleur 122 délivre de plus le groupement rétabli à la mémoire vive 121, change un groupement de 4 bits d'ordre
<Desc/Clms Page number 14>
inférieur DATA~C[3:0] parmi des données à 8 bits délivrées en sortie de la mémoire vive 121 en fonction du nombre aléatoire, et délivre en sortie le groupement changé au bus de données 130. Dans une autre forme de réalisation, le générateur de nombres aléatoires 113 peut être inclus dans un bloc de circuits de mémoire vive 120.
La figure 3 est un schéma général illustrant une structure de circuit des premier et deuxième brouilleurs de la figure 2 selon des formes de réalisation de l'invention.
Le premier brouilleur 112 comprend un premier changeur de groupement de bits 200 et un premier générateur de signaux de sélection 220. Le premier générateur de signaux de sélection 220 génère un signal de sélection à 16 bits SEL1[15:0] en réponse à une entrée de nombre aléatoire à 4 bits venant du générateur de nombres aléatoires 113.
Lorsque les données DATA~A[3:0] sont délivrées en sortie de l'unité centrale 111, le premier changeur de groupement de bits 200 change un groupement de bits des données DATA~A[3:0] en réponse au signal de sélection SEL1[15:0], et délivre en sortie DATA~B[3:0] au bus de données 130.
Lorsque les données DATA~B[3:0] sont entrées par l'intermédiaire du bus de données 130, le premier changeur de groupement de bits 200 rétablit le groupement de bits des données DATA~B[3:0] en un groupement de bits original en réponse au signal de sélection SEL1[15:0], et délivre le groupement rétabli à l'unité centrale 111.
Le deuxième brouilleur 122 comprend un deuxième changeur de groupement de bits 300 et un deuxième générateur de signaux de sélection 320 de façon similaire au premier brouilleur 112. Le deuxième générateur de signaux de sélection 320 génère un signal de sélection à 16 bits SEL2[15:0] en réponse à un nombre aléatoire à 4 bits entré depuis le générateur de nombres aléatoires 113. Le signal de sélection SEL1[15:0] délivré en sortie du premier générateur de signaux de sélection 220 et le signal de sélection SEL2[15:0] délivré en sortie du deuxième
<Desc/Clms Page number 15>
générateur de signaux de sélection 320 sont sensiblement identiques entre eux. Lorsque les données DATA~C[3:0] sont délivrées en sortie de la mémoire vive 121, le deuxième changeur de groupement de bits 300 change un groupement de bits des données DATA~C[3:0] en réponse au signal de sélection SEL1[15:0], et délivre en sortie DATA~B[3:0] au bus de données 130. Lorsque les données DATA~B[3:0] sont entrées par l'intermédiaire du bus de données 130, le deuxième changeur de groupement de bits 300 rétablit un groupement de bits des données DATA~B[3:0] en un groupement de bits original en réponse au signal de sélection SEL2[15:0], et délivre le groupement de bits rétabli à la mémoire vive 121.
Selon la présente invention, lorsque des données sont transmises de l'unité centrale 111 à la mémoire vive 121, les données à 4 bits d'ordre inférieur DATA~A[3:0] délivrées en sortie depuis l'unité centrale 111 sont cryptées par le premier changeur de groupement de bits 200 (autrement dit, le groupement de bits est changé). Les données cryptées DATA~B[3:0] sont transmises sur le bus de données 130 au deuxième changeur de groupement de bits 300, dans lequel les données sont décryptées avant d'être mémorisées dans la mémoire vive 212. Par conséquent, les données DATA~A[3:0] délivrées en sortie de l'unité centrale 111 au premier changeur de groupement de bits 200 et les données DATA~C[3:0] délivrées à partir du deuxième changeur de groupement de bits 300 à la mémoire vive 121 sont identiques entre elles, de façon à ne pas influencer la transmission de données. Comme les données DATA~B[3:0] transmises sur le bus de données 130 sont cryptées, même si le bus de données 130 est contrôlé par un pirate informatique depuis l'extérieur, les données exposées sont différentes des données substantiellement transmises depuis l'unité centrale 111 à la mémoire 121, de façon à sécuriser ainsi les données réelles.
<Desc/Clms Page number 16>
De même, des données à 4 bits d'ordre inférieur DATA C[3:0], qui sont délivrées en sortie de la mémoire vive 121 lorsque des données sont transmises depuis la mémoire vive 121 à l'unité centrale 111, sont cryptées par le deuxième changeur de groupement de bits 300 (autrement dit, le groupement de bits est changé) de façon à devenir DATA~B[3:0], qui sont transmises sur le bus de données 130.
Les données cryptées DATA~B[3:0] sur le bus de données sont décryptées par le premier changeur de groupement de bits 200 de façon à devenir DATA~A[3:0], qui sont délivrées à l'unité centrale 111. Par conséquent, les données DATA~C[3:0] délivrées en sortie de la mémoire vive 121 au deuxième changeur de groupement de bits 300, et les données DATA~A[3:0] délivrées à partir du premier changeur de groupement de bits 200 à l'unité centrale 111, sont identiques entre elles, de façon à ne pas influencer la transmission de données. Comme les données DATA~B[3:0] chargées sur le bus de données 130 sont cryptées, même si le bus de données 130 est contrôlé par un pirate informatique depuis l'extérieur, les données exposées sont différentes des données substantiellement transmises depuis la mémoire vive 121 à l'unité centrale 111, et par conséquent, les données transmises de la mémoire 121 à l'unité centrale 111 sont sécurisées.
Les figures 4 et 5 sont des schémas illustrant des structures et des opérations préférées des premier et deuxième changeurs de groupement de bits 200 et 300 pour changer et rétablir les groupements de bits.
Si l'on se réfère à la figure 4, le premier changeur de groupement de bits comprend quatre parties de commutation 201 à 204, et le deuxième changeur de groupement de bits 300 comprend quatre parties de commutation 301 à 304, qui correspondent aux parties de commutation 201 à 204 dans le premier changeur de groupement de bits 200, respectivement.
Les parties de commutation 201 à 204 dans le premier changeur de groupement de bits 200 sont commandées par des
<Desc/Clms Page number 17>
signaux à 4 bits correspondants parmi les signaux de sélection SEL1[15:0] générés à partir du premier générateur de signaux de sélection 220, respectivement. Autrement dit, la partie de commutation 201 est commandée par un signal de sélection SEL1 [15:12], la partie de commutation 202 est commandée par un signal de sélection SEL1[11:8], la partie de commutation 203 est commandée par un signal de sélection SEL1[7:4], et la partie de commutation 204 est commandée par un signal de sélection SEL1[3:0].
Comme expliqué ci-dessus, les signaux de sélection SEL1[15:0] et SEL2[15:0], délivrés en sortie des premier et deuxième générateurs de signaux de sélection 220 et 320, respectivement, sont identiques entre eux. Par conséquent, les parties de commutation 201 à 204 dans le premier changeur de groupement de bits 200, et les parties de commutation correspondantes 301 à 304 dans le deuxième changeur de groupement de bits 300, sont commandées par les mêmes signaux, respectivement.
Si l'on se réfère à la figure 5, la partie de commutation 201 comprend quatre commutateurs SWAO à SWA3, et la partie de commutation 301 comprend quatre commutateurs SWBO à SWB3, correspondant aux commutateurs SWAO à SWA3, respectivement. Les commutateurs SWAO à SWA3 dans la partie de commutation 201 sont commandés par des signaux correspondant parmi les signaux de sélection SEL1[15:12] générés à partir du premier générateur de signaux de sélection 220, respectivement. Les commutateurs SWBO à SWB3 dans la partie de commutation 301 sont commandés par des signaux correspondant parmi les signaux de sélection SEL2[15:12] générés à partir du deuxième générateur de signaux de sélection 320, respectivement. Si les signaux de sélection SEL1 [15:12] et SEL2[15:12] sont des "1" logiques, les commutateurs correspondant SWAO à SWA3 et SWBO à SWB3 deviennent "en service", respectivement. Mais s'il s'agit de "0" logiques, les commutateurs correspondants deviennent "hors service", respectivement.
<Desc/Clms Page number 18>
De façon similaire, les parties de commutation 202 à 204 et 302 à 304 comprennent quatre commutateurs, respectivement, identiques aux parties de commutation 201 et 301 illustrées en figure 5, et commandés par des signaux de sélection correspondants. Par conséquent, une description détaillée de la structure et du fonctionnement des parties de commutations 202 à 204 et 302 à 304 ne sont pas nécessaires pour une personne ayant une connaissance ordinaire de la technique pour pouvoir comprendre leur fonctionnement.
Le Tableau 1 montre des exemples de signaux de sélection SEL1[15:0] et SEL2[15:0] délivrés en sortie des premier et deuxième générateurs de signaux de sélection 220 et 320 en fonction d'un nombre aléatoire à 4 bits généré à partir d'un générateur de nombres aléatoires 113, et des groupements de bits de données DATA~B[3:0] délivrés sur le bus de données 130 à partir de ceux-ci.
[Tableau 1]
Figure img00180001
<tb>
<tb> Nombre <SEP> aléatoire <SEP> à <SEP> 4 <SEP> Signaux <SEP> de <SEP> sélection <SEP> Groupement <SEP> de <SEP> bits
<tb> bits <SEP> (SEL1[15:0] <SEP> et <SEP> DATA~B[3:0]
<tb> SEL2[15:0])
<tb> 0000 <SEP> 1000001001000001 <SEP> BO <SEP> B2 <SEP> BI <SEP> B3 <SEP>
<tb> 0001 <SEP> 1000 <SEP> 0010 <SEP> 0001 <SEP> 0100 <SEP> BO <SEP> B2 <SEP> B3 <SEP> BI <SEP>
<tb> 0010 <SEP> 1000000101000010 <SEP> BO <SEP> B3 <SEP> BI <SEP> B2 <SEP>
<tb> 0011 <SEP> 1000 <SEP> 0001 <SEP> 0010 <SEP> 0100 <SEP> BO <SEP> B3 <SEP> B2 <SEP> BI <SEP>
<tb> 0100 <SEP> 0100 <SEP> 1000 <SEP> 0010 <SEP> 0001 <SEP> BI <SEP> BO <SEP> B2 <SEP> B3 <SEP>
<tb> 0101 <SEP> 0100 <SEP> 1000 <SEP> 0001 <SEP> 0010 <SEP> BI <SEP> BO <SEP> B3 <SEP> B2 <SEP>
<tb> 0110 <SEP> 0100 <SEP> 0001 <SEP> 1000 <SEP> 0010 <SEP> BI <SEP> B3 <SEP> BO <SEP> B2 <SEP>
<tb> 0111 <SEP> 0100000100101000 <SEP> BI <SEP> B3 <SEP> B2 <SEP> BO <SEP>
<tb> 1000 <SEP> 0010100001000001 <SEP> B2 <SEP> BO <SEP> BI <SEP> B3 <SEP>
<tb> 1001 <SEP> 0010 <SEP> 1000 <SEP> 0001 <SEP> 0100 <SEP> B2 <SEP> BO <SEP> B3 <SEP> BI <SEP>
<tb> 1010 <SEP> 0010 <SEP> 0100 <SEP> 1000 <SEP> 0001 <SEP> B2 <SEP> BI <SEP> BO <SEP> B3 <SEP>
<tb> 1011 <SEP> 0010000101001000 <SEP> B2 <SEP> B3 <SEP> BI <SEP> BO <SEP>
<tb> 1100 <SEP> 0001 <SEP> 1000 <SEP> 0100 <SEP> 0010 <SEP> B3 <SEP> BO <SEP> BI <SEP> B2 <SEP>
<tb> 1101 <SEP> 00011000 <SEP> 0010 <SEP> 0100 <SEP> B3 <SEP> BO <SEP> B2 <SEP> BI <SEP>
<tb> 1110 <SEP> 0001 <SEP> 0100 <SEP> 1000 <SEP> 0010 <SEP> B3 <SEP> BI <SEP> BO <SEP> B2 <SEP>
<tb> 1111 <SEP> 0001 <SEP> 0100 <SEP> 0010 <SEP> 1000 <SEP> B3 <SEP> B1 <SEP> B2 <SEP> BO
<tb>
<Desc/Clms Page number 19>
Par exemple, lorsque les données DATA~A[3:0] délivrées en sortie de l'unité centrale 111 sont transmises à la mémoire vive 121 par l'intermédiaire du bus 130, si le nombre aléatoire à 4 bits généré à partir du générateur de nombres aléatoires 113 est "0000", les premier et deuxième signaux de sélection SEL1[15:0] et SEL2[15:0] deviennent "1000 0010 0100 0001". Comme expliqué ci-dessus, les premier et deuxième signaux de sélection SEL1[15:0] et SEL2[15:0] deviennent identiques entre eux. Comme le premier signal de sélection SEL1[15:12] devient "1000", le commutateur SWA3 de la partie de commutation 201 devient "en service", et les données DATA~A[0] délivrées en sortie depuis l'unité centrale 111 sont délivrées sur un troisième bit du bus de données, à savoir sur DATA~B[3]. Avec ce procédé, les données DATA~A[1], les données DATA~A[2] et les données DATA~A[3], qui sont délivrées en sortie à partir de l'unité centrale 111, sont délivrées sur le bus de données DATA~B[1], sur le bus de données DATA~B[2] et sur le bus de données DATA~B[0], respectivement.
Par conséquent, lorsqu'un groupement de bits des données DATA~A[3:0] délivré en sortie depuis l'unité centrale 111 est "B3 B2 B1 BO", un autre groupement de bits des données DATA~B[3:0] délivré sur le bus de données 130 devient "BO B2 Bl B3".
Par exemple, si les données DATA A[3:0] délivrées en sortie de l'unité centrale 111 sont "1100", les données DATA~B[3:0] délivrées sur le bus de données 130 deviennent "0101". Par conséquent, même si les données sur le bus de données DATA B[3:0] délivrées sur le bus de données 130 sont exposées à un pirate informatique, comme les données exposées sont différentes des données de sortie sur le bus de données DATA~A[3:0], l'exposition des données réelles peut être empêchée.
Les données DATA~B[3:0] chargées sur le bus de données 130 sont transmises à la mémoire vive 121 à l'aide du procédé suivant. Comme dans l'exemple ci-dessus, lorsqu'un
<Desc/Clms Page number 20>
nombre aléatoire à 4 bits généré à partir du générateur de nombres aléatoires 113 est "0000", le deuxième signal de sélection SEL2[15:0] est "1000 0010 0100 0001". Comme le deuxième signal de sélection SEL2[15:12] est "1000", le commutateur SWB3 de la partie de commutation 301 devient "en service", et un troisième bit du bus de données, à savoir des données chargées sur DATA~B[3], est délivré comme données de bit DATA~C[0] par l'intermédiaire du commutateur SWB3. Avec ce procédé, les données DATA~B[1] chargées sur le bus de données 130 sont délivrées à des premières données de bit DATA~~C[1] de la mémoire vive 121, les données DATA~B[2] sont délivrées à des deuxièmes données de bit DATA~C[2] de la mémoire vive 121, et les données DATA~B[0] sont délivrées à des troisièmes données de bit DATA~C[3] de la mémoire vive 121.
Par conséquent, lorsque les données DATA~B[3:0] chargées sur le bus de données 130 sont "BO B2 Bl B3", les données DATA~C[3:0] délivrées à la mémoire vive 121 deviennent "B3 B2 Bl BO". Ceci est identique à un groupement de bits des données DATA~A[3:0] délivré en sortie depuis l'unité centrale 111. Par conséquent,- les données qui sont transmises à partir de l'unité centrale 111 à la mémoire vive 121 par l'intermédiaire du bus de données 130 ne peuvent pas être exposées à un pirate informatique, et ne sont pas influencées.
La figure 6A est un graphique montrant des changements de position de bits de données dans le cas où un nombre aléatoire généré à partir du générateur de nombres aléatoires 113 est "0000" lorsque les données DATA~A[3:0] délivrées en sortie depuis l'unité centrale 111 sont transmises à la mémoire vive 121. Comme montré en figure 6A, chaque position des bits des données DATA~A[3:0] délivrées en sortie depuis l'unité centrale 111 est changée en fonction des signaux de sélection SEL1[15:0] et délivrée sur le bus de données 130. Autrement dit, les données DATA~A[0], DATA~A[1], DATA~A[2], et DATA~A[3], qui sont
<Desc/Clms Page number 21>
délivrées en sortie depuis l'unité centrale 111, sont changées en DATA~B[3], DATA~B[1], DATA~B[2] et DATA~B[0] du bus de données 130, respectivement. En fonction du signal de sélection SEL [15:0], DATA~B[0], DATA~B[1], DATA~B[2] et DATA~B[3], qui sont chargées sur le bus de données 130, sont changées en DATA~C[3], DATA~C[1], DATA~C[2] et DATA~C[0], respectivement, et les données changées sont délivrées à la mémoire vive 121.
Le procédé de transmission de données de la mémoire vive 121 à l'unité centrale 111 par l'intermédiaire du bus de données 130 est exécuté selon un ordre inverse de celui du procédé expliqué ci-dessus pour transmettre les données de l'unité centrale 111 à la mémoire vive 121.
Par exemple, si le nombre aléatoire à 4 bits généré à partir du générateur de nombres aléatoires 113 est "0100", les premier et deuxième signaux de sélection SEL1[15:0] et SEL2[15:0] deviennent "0100 1000 0010 0001". Comme expliqué ci-dessus, les premier et deuxième signaux de sélection SEL1[15:0] et SEL2[15:0] sont identiques entre eux. Comme le deuxième signal de sélection SEL2[15:12] est "0100", le commutateur SWB2 de la partie de commutation 301 devient "en service", et, par conséquent, les données DATA~C[0] délivrées en sortie de la mémoire vive 121 sont délivrées sur un deuxième bit du bus de données, à savoir sur DATA~B[2]. Avec le même procédé, les données DATA~C[1], DATA~C[2], et DATA~C[3], qui sont délivrées en sortie depuis la mémoire vive 121, sont délivrées sur les bus de données DATA~B[3], DATA~B[1] et DATA~B[0], respectivement.
Par conséquent, lorsque le groupement de bits des données DATA~C[3:0] délivré en sortie de la mémoire vive 121 est "B3 B2 Bl BO", un autre groupement de bits des données DATA~B[3:0] chargé sur le bus de données 130 devient "BI BO B2 B3".
Par exemple, si les données DATA C[3:0] délivrées en sortie depuis la mémoire vive 121 sont "1100", les données DATA~B[3:0] chargées sur le bus de données 130 deviennent
<Desc/Clms Page number 22>
"0011". Par conséquent, bien que les données DATA~B[3:0] chargées sur le bus de données 130 puissent être exposées à une personne non autorisée, l'exposition de données peut être empêchée, car les données exposées sont différentes des données réelles DATA C[3:0] délivrées en sortie de la mémoire vive 121.
Cependant, les données DATA~B[3:0] chargées sur le bus de données 130 sont transmises à l'unité centrale 111 à l'aide du procédé suivant. Comme dans l'exemple ci-dessus, lorsqu'un nombre aléatoire à 4 bits généré à partir du générateur de nombres aléatoires 113 est "0100", le premier signal de sélection SEL1[15:0] est "0100 1000 0010 0001".
Comme le premier signal de sélection SEL1[15:12] est "0100", le commutateur SWB2 de la partie de commutation 201 devient "en service", et un deuxième bit du bus de données, à savoir les données chargées sur DATA~B[2], est délivré sous la forme des données de bit DATA A[0] de l'unité centrale 111 par l'intermédiaire du commutateur SWB2. Avec ce procédé, les données DATA~B[0], DATA~B[l] et DATA~B[3] chargées sur le bus de données 130 sont délivrées à DATA~A[3], DATA~A[2], et DATA~A[1] de l'unité centrale 111, respectivement.
Par conséquent, lorsque les données DATA~B[3:0] chargées sur le bus de données 130 sont "Bl BO B2 B3", les données DATA~A[3:0] délivrées à l'unité centrale 111 deviennent "B3 B2 Bl BO". Ceci est identique à l'origine à un groupement de bits des données DATA~C[3:0] délivré en sortie depuis la mémoire vive 121. Par conséquent, les données transmises de la mémoire vive 121 à l'unité centrale 111 par l'intermédiaire du bus de données 130 ne peuvent pas être exposées à un pirate informatique, et ne sont pas influencées.
La figure 6B est un graphique montrant des changements de position de bits de données dans le cas où le nombre aléatoire généré à partir du générateur de nombres aléatoires 113 est "0100" lorsque les données DATA~C[3:0]
<Desc/Clms Page number 23>
délivrées en sortie depuis la mémoire vive 121 sont transmises à l'unité centrale 111. Comme montré en figure 6B, chaque position des bits des données DATA~C[3:0] délivrées en sortie depuis la mémoire vive 121 est changée en fonction du signal de sélection SEL2[15:0] et délivrée sur le bus de données 130. Autrement dit, DATA~C[0], DATA~C[1], DATA~C[2], et DATA~C[3], délivrées en sortie depuis la mémoire vive 121, sont changées en DATA~B[2], DATA~B[3], DATA~B[1], et DATA~B[0] du bus de données 130, respectivement. En fonction du signal de sélection SEL1[15:0], DATA~B[0], DATA~B [1], DATA~B[2] et DATA~B[3] chargées sur le bus de données 130 sont changées en DATA~A[3], DATA~A[2] DATA~A[0], et DATA~A[l], et les données changées sont délivrées à l'unité centrale 111, respectivement.
Cependant, comme le générateur de nombres aléatoires 113 selon la présente invention fonctionne par synchronisation avec le signal d'horloge CLK (figure 2), les premier et deuxième brouilleurs 112 et 122 effectuent des opérations de changements de groupements de bits à chaque horloge. Par conséquent, même si les données chargées sur le bus de données 130 sont exposées à un pirate informatique, il est très difficile de décrypter les données, car, pour chaque horloge, un groupement de bits est changé par un procédé différent.
Bien que cette invention ait été particulièrement représentée et décrite en se référant à des formes de réalisation préférées de celle-ci, les personnes ayant une bonne connaissance de la technique comprendront que différents changements de formes et de détails peuvent y être apportés sans s'écarter de l'esprit et de l'étendue de l'applicabilité de l'invention telle qu'elle est définie par les revendications jointes. Par exemple, dans la présente forme de réalisation, un groupement de bits de données à 4 bits d'ordre inférieur parmi des données à 8 bits délivrées en sortie depuis l'unité centrale 111 est
<Desc/Clms Page number 24>
changé. Cependant, même si la totalité de données à 3 bits ou certains bits des données à 8 bits sont changés, l'objet de la présente invention peut être mis en oeuvre par les personnes ayant une bonne connaissance de la technique.
Selon la présente invention, même si des données d'entrée/sortie parmi des blocs de circuits internes sont exposées à une personne non autorisée, comme les données exposées sont différentes des données originales, les données d'entrée/sortie parmi les blocs de circuits internes peuvent être protégées.

Claims (41)

REVENDICATIONS
1. Circuit intégré à semiconducteurs (100), caractérisé en ce qu'il comprend : un premier circuit (110) ; un deuxième circuit (120) ; un bus de données (130) ; et des premier et deuxième circuits de cryptage/décryptage (112,122) pour crypter/décrypter des données transmises entre les premier et deuxième circuits (110,120) sur le bus de données (130), en ce que le premier circuit de cryptage/décryptage (112) sert à crypter des données délivrées en sortie du premier circuit (110), à délivrer en sortie les données cryptées au bus de données (130), à décrypter des données cryptées reçues du deuxième circuit de cryptage/décryptage (122), et à délivrer les données décryptées au premier circuit (110) ; et en ce que le deuxième circuit de cryptage/décryptage (122) sert à décrypter les données cryptées reçues du premier circuit de cryptage/décryptage (112), à délivrer les données décryptées au deuxième circuit (120), à crypter des données délivrées en sortie du deuxième circuit (120), et à délivrer en sortie les données cryptées au bus de données (130).
2. Circuit intégré à semiconducteurs (100) selon la revendication 1, caractérisé en ce qu'il comprend de plus un générateur de nombres aléatoires (113) pour générer un nombre aléatoire en réponse à un signal d'horloge (CLK), et délivrer le nombre aléatoire au premier circuit de cryptage/décryptage (112) et au deuxième circuit de cryptage/décryptage (122) pour commander l'exécution des opérations de cryptage et de décryptage.
3. Circuit intégré à semiconducteurs (100) selon la revendication 2, caractérisé en ce que le générateur de nombres aléatoires (113) se compose d'un bloc de circuits associé à l'un parmi le premier circuit de cryptage/décryptage (112) et le deuxième circuit de cryptage/décryptage (122) .
<Desc/Clms Page number 26>
4. Circuit intégré à semiconducteurs (100), caractérisé en ce qu'il comprend : un premier bloc de circuits (110) comprenant un circuit de processeur (111) ; un deuxième bloc de circuits (120) comprenant un circuit de mémorisation (121) ; et un bus de données (130) pour transmettre des données entre les premier et deuxième blocs de circuits (110,120), en ce que le premier bloc de circuits (110) comprend de plus un générateur de nombres aléatoires (113) pour générer un nombre aléatoire en réponse à un signal d'horloge (CLK), et un premier circuit de cryptage/décryptage (112) pour crypter des données délivrées en sortie du circuit de processeur (111) en fonction d'un nombre aléatoire généré à partir du générateur de nombres aléatoires (113), délivrer en sortie les données cryptées au bus de données (130), décrypter des données cryptées reçues depuis le circuit de mémorisation (121) sur le bus de données (130), et délivrer les données décryptées au circuit de processeur (111) ; et en ce que le deuxième bloc de circuits (120) comprend de plus un deuxième circuit de cryptage/décryptage (122) pour décrypter les données cryptées reçues depuis le circuit de processeur (111) sur le bus de données (130) en fonction d'un nombre aléatoire généré à partir du générateur de nombres aléatoires (113), délivrer les données décryptées au circuit de mémorisation (121), crypter des données délivrées en sortie du circuit de mémorisation (121) en fonction du nombre aléatoire, et délivrer en sortie les données cryptées au bus de données (130).
5. Circuit intégré à semiconducteurs (100), caractérisé en ce qu'il comprend : un premier circuit (110) ; un deuxième circuit (120) ; un bus de données (130) pour transmettre une pluralité de bits de données entre les premier et deuxième circuits (110, 120) ;
<Desc/Clms Page number 27>
un générateur de nombres aléatoires (113) pour générer un nombre aléatoire en réponse à un signal d'horloge (CLK) ; un premier brouilleur (112) pour changer un groupement de la pluralité de bits de données délivrés en sortie depuis le premier circuit (110) en fonction du nombre aléatoire, délivrer en sortie le groupement changé au bus de données (130), rétablir un groupement de la pluralité de bits de données reçus à partir du deuxième circuit (120) sur le bus de données (130) en un groupement original en fonction du nombre aléatoire, et délivrer le groupement rétabli au premier circuit (110), et un deuxième brouilleur (112) pour rétablir le groupement de la pluralité de bits de données reçus à partir du premier circuit (110) sur le bus de données (130) en un groupement original en fonction du nombre aléatoire, délivrer le groupement rétabli au deuxième circuit (120), changer le groupement de la pluralité de bits de données délivrés en sortie du deuxième circuit (120) en fonction du nombre aléatoire, et délivrer en sortie le groupement changé au bus de données (130).
6. Circuit intégré à semiconducteurs (100) selon la revendication 5, caractérisé en ce que la pluralité de bits de données sont N bits, N étant un entier.
7. Circuit intégré à semiconducteurs (100) selon la revendication 5, caractérisé en ce que le premier brouilleur (112) comprend : un premier générateur (220) pour générer des premiers signaux de sélection correspondant au nombre aléatoire ; et un premier changeur de groupement de bits (200) pour changer le groupement de la pluralité de bits de données délivrés en sortie depuis le premier circuit (110) en fonction des premiers signaux de sélection, délivrer en sortie le groupement changé au bus de données (130), rétablir le groupement de la pluralité de bits de données reçus à partir du deuxième circuit (120) sur le bus de
<Desc/Clms Page number 28>
données (130) en le groupement original en fonction des premiers signaux de sélection, et délivrer le groupement rétabli au premier circuit (110).
8. Circuit intégré à semiconducteurs (100) selon la revendication 7, caractérisé en ce que le premier changeur de groupement de bits (200) comprend une pluralité de premiers circuits de commutation (201 à 204) correspondant à l'émission et à la réception de la pluralité de bits de données, respectivement, chacun de la pluralité de premiers circuits de commutation (201 à 204) servant à connecter un bit correspondant de la pluralité de bits de données délivrés en entrée/sortie vers/depuis le premier circuit (110) à un bit correspondant aux premiers signaux de sélection parmi les bits du bus de données (130).
9. Circuit intégré à semiconducteurs (100) selon la revendication 8, caractérisé en ce que chacun de la pluralité de premiers circuits de commutation (201 à 204) : délivre en sortie un bit correspondant de la pluralité de bits de données délivrés en sortie du premier circuit (110) lorsque des données sont délivrées en sortie du premier circuit (110), sous la forme d'un bit correspondant aux premiers signaux de sélection parmi les bits du bus de données (130), et délivre un bit correspondant aux premiers signaux de sélection parmi les bits de données chargés dans le bus de données (130) lorsque des données sont entrées à partir du bus de données (130), sous la forme d'un bit correspondant de la pluralité de bits de données délivrés en entrée au premier circuit (110).
10. Circuit intégré à semiconducteurs (100) selon la revendication 8, caractérisé en ce que chacun de la pluralité de premiers circuits de commutation (201 à 204) comprend une pluralité de commutateurs (SWAO à SWA3) qui sont connectés entre une pluralité de bits du bus de données (130) et un bit correspondant de la pluralité de bits de données délivrés en entrée/sortie vers/depuis le
<Desc/Clms Page number 29>
premier circuit (110), respectivement, pour fonctionner en réponse aux premiers signaux de sélection.
11. Circuit intégré à semiconducteurs (100) selon la revendication 7, caractérisé en ce que le deuxième brouilleur (122) comprend : un deuxième générateur (320) pour générer des deuxièmes signaux de sélection correspondant au nombre aléatoire ; et un deuxième changeur de groupement de bits (300) pour rétablir le groupement de la pluralité de bits de données reçus à partir du premier circuit (110) sur le bus de données (130) en le groupement original en fonction des deuxièmes signaux de sélection, délivrer le groupement rétabli au deuxième circuit (120), changer le groupement de bits de données délivrés en sortie à partir du deuxième circuit (120) en fonction des deuxièmes signaux de sélection, et délivrer en sortie le groupement changé au bus de données (130).
12. Circuit intégré à semiconducteurs (100) selon la revendication 11, caractérisé en ce que les premiers signaux de sélection et les deuxièmes signaux de sélection sont identiques entre eux.
13. Circuit intégré à semiconducteurs (100) selon la revendication 11, caractérisé en ce que le deuxième changeur de groupement de bits (300) comprend une pluralité de deuxièmes circuits de commutation (301 à 304) correspondant aux bits de données émis et reçus, chacun des deuxièmes circuits de commutation (301 à 304) servant à connecter un bit correspondant parmi des bits de données délivrés en entrée/sortie vers/depuis le deuxième circuit (120) à des bits correspondant aux deuxièmes signaux de sélection parmi des bits du bus de données (130).
14. Circuit intégré à semiconducteurs (100) selon la revendication 13, caractérisé en ce que chacun des deuxièmes circuits de commutation (301 à 304) : délivre en sortie un bit correspondant parmi les bits de données délivrés en sortie à partir du deuxième circuit
<Desc/Clms Page number 30>
(120) lorsque des données sont délivrées en sortie à partir du deuxième circuit (120), sous la forme d'un bit correspondant au deuxième signal de sélection parmi des bits du bus de données (130), et délivre un bit correspondant aux deuxièmes signaux de sélection parmi des bits de données chargés sur le bus de données (130) lorsque des données sont entrées à partir du bus de données (130), sous la forme d'un bit correspondant parmi des bits de données délivrés en entrée au deuxième circuit (120) .
15. Circuit intégré à semiconducteurs (100) selon la revendication 14, caractérisé en ce que chacun des deuxièmes circuits de commutation comprend une pluralité de commutateurs qui sont connectés entre une pluralité de bits du bus de données (130) et un bit correspondant parmi des bits de données délivrés en entrée/sortie vers/depuis le deuxième circuit (120), respectivement, pour fonctionner en réponse aux deuxièmes signaux de sélection.
16. Carte à puce, caractérisée en ce qu'elle comprend : un premier circuit (110) ; un deuxième circuit (120) ; un bus de données (130) pour transmettre une pluralité de bits de données entre les premier et deuxième circuits (110, 120) ; un générateur de nombres aléatoires (113) pour générer un nombre aléatoire en réponse à un signal d'horloge (CLK) ; un premier brouilleur (112) pour changer un groupement de la pluralité de bits de données délivrés en sortie à partir du premier circuit (110) en fonction d'un nombre aléatoire, délivrer en sortie le groupement changé au bus de données (130), rétablir un groupement de la pluralité de bits de données reçus à partir du deuxième circuit (120) sur le bus de données (130) en un groupement original en fonction du nombre aléatoire, et délivrer le groupement rétabli au premier circuit (110) ; et
<Desc/Clms Page number 31>
un deuxième brouilleur (122) pour rétablir un groupement de la pluralité de bits de données reçus à partir du premier circuit (110) sur le bus de données (130) en un groupement original en fonction du nombre aléatoire, délivrer les données rétablies au deuxième circuit (120), changer un groupement de la pluralité de bits de données délivrés en sortie à partir du deuxième circuit (120) en fonction du nombre aléatoire, et délivrer en sortie le groupement changé au bus de données (130).
17. Carte à puce selon la revendication 16, caractérisée en ce que le premier brouilleur (112) comprend : un premier générateur (220) pour générer des premiers signaux de sélection correspondant au nombre aléatoire ; et un premier changeur de groupement de bits (200) pour changer le groupement de la pluralité de bits de données délivrés en sortie à partir du premier circuit (110) en fonction des premiers signaux de sélection, délivrer en sortie le groupement changé au bus de données (130), rétablir le groupement de bits de données reçu à partir du deuxième circuit (120) sur le bus de données (130) en fonction des premiers signaux de sélection, et délivrer le groupement rétabli au premier circuit (110).
18. Carte à puce selon la revendication 17, caractérisée en ce que le deuxième brouilleur (122) comprend : un deuxième générateur (320) pour générer des deuxièmes signaux de sélection correspondant au nombre aléatoire ; et un deuxième changeur de groupement de bits (300) pour rétablir le groupement de données de bits délivrées en entrée à partir du premier circuit (110) sur le bus de données (130) en le groupement original en fonction des deuxièmes signaux de sélection, délivrer le groupement rétabli au deuxième circuit (120), changer le groupement de bits de données délivré en sortie à partir du deuxième circuit (120) en fonction des deuxièmes signaux de
<Desc/Clms Page number 32>
sélection, et délivrer en sortie le groupement changé au bus de données (130).
19. Carte à puce selon la revendication 18, caractérisée en ce que les premiers signaux de sélection générés à partir du premier générateur (220) et les deuxièmes signaux de sélection générés à partir du deuxième générateur (320) sont identiques entre eux.
20. Carte à puce selon la revendication 18, caractérisée en ce que les données émises et reçues entre les premier et deuxième blocs de circuits (110,120) par l'intermédiaire du bus de données (130) comprennent N bits, N étant un entier.
21. Carte à puce selon la revendication 20, caractérisée en ce que le premier changeur de groupement de bits (200) comprend une pluralité de premiers circuits de commutation (201 à 204) correspondant aux bits de données d'émission et de réception, respectivement, chacun de la pluralité de premiers circuits de commutation (201 à 204) servant à connecter un bit correspondant parmi des bits de données délivrés en entrée/sortie vers/depuis le premier circuit (110) à un bit correspondant aux premiers signaux de sélection parmi les bits du bus de données (130).
22. Carte à puce selon la revendication 21, caractérisée en ce que chacun des premiers circuits de commutation (201 à 204) : délivre en sortie un bit correspondant parmi des bits de données délivrés en sortie à partir du premier circuit (110) lorsque des données sont délivrées en sortie du premier circuit (110), sous la forme d'un bit correspondant aux premiers signaux de sélection parmi les bits du bus de données (130), et délivre un bit correspondant aux premiers signaux de sélection parmi des bits de données chargés sur le bus de données (130) lorsque des données sont délivrées en entrée à partir du bus de données (130) , à un bit correspondant parmi des bits de données délivrés en entrée au premier circuit (110) .
<Desc/Clms Page number 33>
23. Carte à puce selon la revendication 21, caractérisée en ce que chacun des premiers circuits de commutation (201 à 204) comprend une pluralité de commutateurs (SWAO à SWA3) qui sont connectés entre une pluralité de bits du bus de données (130) et un bit correspondant parmi des bits de données délivrés en entrée/sortie vers/depuis le premier circuit (110), respectivement, pour fonctionner en réponse aux premiers signaux de sélection.
24. Carte à puce selon la revendication 18, caractérisée en ce que le deuxième changeur de groupement de bits (300) comprend une pluralité de deuxièmes circuits de commutation (301 à 304) correspondant à des bits des données émises et reçues, chacun de la pluralité de deuxièmes circuits de commutation (301 à 304) servant à connecter un bit correspondant parmi des bits de données délivrés en entrée/sortie vers/depuis le deuxième circuit (120) à des bits correspondant aux deuxièmes signaux de sélection parmi les bits du bus de données (130).
25. Carte à puce selon la revendication 23, caractérisée en ce que chacun des deuxièmes circuits de commutation (301 à 304) : délivre en sortie un bit correspondant parmi des bits de données délivrés en sortie à partir du deuxième circuit (120) lorsque des données sont délivrées en sortie à partir du deuxième circuit (120), sous la forme d'un bit correspondant aux deuxièmes signaux de sélection parmi les bits du bus de données (130), et délivre un bit correspondant aux deuxièmes signaux de sélection parmi des bits de données chargés sur le bus de données (130) lorsque des données sont entrées à partir du bus de données (130) sous la forme d'un bit correspondant de bits de données délivrés en entrée au deuxième circuit (120) .
26. Carte à puce selon la revendication 24, caractérisée en ce que chacun des deuxièmes circuits de
<Desc/Clms Page number 34>
commutation (301 à 304) comprend une pluralité de commutateurs (SWBO à SWB3) qui sont connectés entre une pluralité de bits du bus de données (130) et un bit correspondant de bits de données délivrés en entrée/sortie vers/depuis le deuxième circuit (120), respectivement, pour fonctionner en réponse aux deuxièmes signaux de sélection.
27. Circuit intégré à semiconducteurs (100), caractérisé en ce qu'il comprend : un premier circuit (110) ; un deuxième circuit (120) ; un bus de données (130) pour transmettre une pluralité de bits de données entre les premier et deuxième circuits (110, 120) ; un générateur de nombres aléatoires (113) pour générer un nombre aléatoire en réponse à un signal d'horloge ( CLK) ; un premier brouilleur (112) pour changer partiellement un groupement de la pluralité de bits de données délivrés en sortie à partir du premier circuit (110) en fonction du nombre aléatoire et délivrer en sortie le groupement changé au bus de données (130) ; et un deuxième brouilleur (122) pour rétablir le groupement de bits de données de groupement dont le groupement a été changé par le premier brouilleur (112) parmi des bits de données délivrés en entrée à partir du premier circuit (110) par l'intermédiaire du bus de données (130) en fonction du nombre aléatoire en un groupement original, délivrer le groupement rétabli au deuxième circuit (130), changer partiellement un groupement parmi des bits de données délivrés en sortie à partir du deuxième circuit (120) en fonction du nombre aléatoire, et délivrer en sortie le groupement changé au bus de données (130), et en ce que le premier brouilleur (112) rétablit certains bits dont le groupement a été changé par le deuxième brouilleur (122), parmi des bits de données délivrés en entrée à partir du deuxième circuit (120) sur
<Desc/Clms Page number 35>
le bus de données (130) en fonction du nombre aléatoire, en un groupement original, et délivre le groupement rétabli au premier circuit (110).
28. Circuit intégré à semiconducteurs (100) selon la revendication 27, caractérisé en ce que le premier brouilleur (112) comprend : un premier générateur (220) pour générer des premiers signaux de sélection correspondant au nombre aléatoire ; et un premier changeur de groupement de bits (200) pour changer partiellement le groupement de bits de données délivrés en sortie à partir du premier circuit (110) en fonction des premiers signaux de sélection, délivrer en sortie le groupement changé au bus de données (130), rétablir le groupement de certains bits dont le groupement a été changé par le deuxième brouilleur (320) parmi des bits de données délivrés en entrée à partir du deuxième bloc de circuits (120) par l'intermédiaire du bus de données (130) en fonction des premiers signaux de sélection, en un groupement original, et délivrer le groupement rétabli au premier circuit (110).
29. Circuit intégré à semiconducteurs (100) selon la revendication 28, caractérisé en ce que le deuxième brouilleur (122) comprend : un deuxième générateur (320) pour générer des deuxièmes signaux de sélection correspondant au nombre aléatoire ; et un deuxième changeur de groupement de bits (300) pour rétablir le groupement de certains bits dont le groupement a été changé par le premier brouilleur (112), parmi des bits de données délivrés en entrée à partir du premier circuit (110) sur le bus de données (130), en le groupement original en fonction des deuxièmes signaux de sélection, délivrer le groupement rétabli au deuxième circuit (120), changer partiellement le groupement de bits de données délivré en sortie à partir du deuxième circuit (120) en fonction des deuxièmes signaux de sélection, et délivrer en sortie le groupement changé au bus de données (130).
<Desc/Clms Page number 36>
30. Circuit intégré à semiconducteurs (100) selon la revendication 29, caractérisé en ce que les premiers signaux de sélection et les deuxièmes signaux de sélection sont identiques entre eux.
31. Circuit intégré à semiconducteurs (100) selon la revendication 29, caractérisé en ce que les données émises et reçues entre les premier et deuxième circuits (110,120) par l'intermédiaire du bus de données (130) comprennent N bits, et en ce que les bits dont le groupement de bits a été changé/rétabli par les premier et deuxième changeurs de groupement de bits (200,300), parmi les données à N bits, sont K bits d'ordre inférieur (K < N), K et N étant des entiers.
32. Circuit intégré à semiconducteurs (100) selon la revendication 31, caractérisé en ce que le premier changeur de groupement de bits (200) comprend une pluralité de premiers circuits de commutation (201 à 204) correspondant à des bits des données à K bits, chacun des premiers circuits de commutation (201 à 204) servant à connecter des bits correspondants parmi les K bits d'ordre inférieur de données délivrées en entrée/sortie vers/depuis le premier circuit (110) à un bit correspondant aux premiers signaux de sélection parmi K bits d'ordre inférieur du bus de données (130).
33. Circuit intégré à semiconducteurs (100) selon la revendication 32, caractérisé en ce que chacun des premiers circuits de commutation (201 à 204) : délivre en sortie un bit correspondant parmi K bits d'ordre inférieur de données délivrées en sortie à partir du premier circuit (110) lorsque des données sont délivrées en sortie à partir du premier circuit (110), sous la forme d'un bit correspondant aux premiers signaux de sélection parmi K bits d'ordre inférieur du bus de données (130), et délivre un bit correspondant aux premiers signaux de sélection parmi des bits de données chargés sur le bus de données (130) lorsque des données sont entrées à partir du
<Desc/Clms Page number 37>
bus de données (130), sous la forme d'un bit correspondant de bits de données délivrés en entrée au premier circuit (110) .
34. Circuit intégré à semiconducteurs (100) selon la revendication 33, caractérisé en ce que chacun des premiers circuits de commutation (201 à 204) comprend une pluralité de commutateurs (SWAO à SWA3) qui sont connectés entre K bits d'ordre inférieur du bus de données (130) et un bit correspondant de K bits d'ordre inférieur de données délivrées en entrée/sortie vers/depuis le premier circuit (110), respectivement, pour fonctionner en réponse aux premiers signaux de sélection.
35. Circuit intégré à semiconducteurs (100) selon la revendication 31, caractérisé en ce que le deuxième changeur de groupement de bits (300) comprend une pluralité de deuxièmes circuits de commutation (301 à 304) correspondant à des donnés à K bits, respectivement, chacun des deuxièmes circuits de commutation (301 à 304) servant à connecter un bit correspondant parmi K bits d'ordre inférieur de données délivrées en entrée/sortie vers/depuis le deuxième circuit (120) à un bit correspondant aux deuxièmes signaux de sélection parmi K bits d'ordre inférieur du bus de données (130) .
36. Circuit intégré à semiconducteurs (100) selon la revendication 35, caractérisé en ce que chacun des deuxièmes circuits de commutation (301 à 304) : délivre en sortie un bit correspondant de K bits d'ordre inférieur de données délivrées en sortie à partir du deuxième circuit (120) lorsque des données sont délivrées en sortie à partir du deuxième circuit (120), sous la forme d'un bit correspondant aux deuxièmes signaux de sélection parmi K bits d'ordre inférieur du bus de données (130), et délivre un bit correspondant aux deuxièmes signaux de sélection parmi K bits d'ordre inférieur de données chargées sur le bus de données (130) lorsque des données
<Desc/Clms Page number 38>
sont délivrées en entrée à partir du bus de données (130), sous la forme d'un bit correspondant parmi K bits d'ordre inférieur de données délivrées en entrée au deuxième circuit (120).
37. Circuit intégré à semiconducteurs (100) selon la revendication 36, caractérisé en ce que chacun des deuxièmes circuits de commutation (301 à 304) comprend une pluralité de commutateurs (SWBO à SWB3) qui sont connectés entre K bits d'ordre inférieur du bus de données (130) et un bit correspondant parmi K bits d'ordre inférieur de données délivrées en entrée/sortie vers/depuis le deuxième circuit (120), respectivement, pour fonctionner en réponse aux deuxièmes signaux de sélection.
38. Procédé pour transmettre des données internes d'un dispositif de mémoire à semiconducteurs comportant une pastille composée d'un premier bloc de circuits (110), d'un deuxième bloc de circuits (120), et d'un bus de données (130) pour transmettre des données entre les premier et deuxième blocs de circuits (110,120), caractérisé en ce qu'il comprend les étapes suivantes : la délivrance en sortie de données à l'aide du premier bloc de circuits (110) ; le changement d'un groupement de bits des données délivrées en sortie à partir du premier bloc de circuits (110) ; la transmission des données dont le groupement de bits a été changé au bus de données (130) ; le rétablissement d'un groupement de bits de données chargées sur le bus de données (130) en un groupement original ; et la délivrance en sortie des données dont le groupement de bits a été rétabli au deuxième bloc de circuits (120).
39. Procédé selon la revendication 38, caractérisé en ce que : l'étape de changement du groupement de bits change certains bits parmi les données délivrées en sortie à partir du deuxième bloc de circuits (120) ; et
<Desc/Clms Page number 39>
l'étape de rétablissement du groupement de bits rétablit les bits dont le groupement de bits a été changé au cours de l'étape de changement du groupement de bits, parmi les données chargées sur le bus de données (130) en le groupement original.
40. Procédé selon la revendication 38, caractérisé en ce qu'il comprend de plus les étapes suivantes : la délivrance en sortie de données à l'aide du deuxième bloc de circuits (120) ; le changement d'un groupement de bits des données délivrées en sortie à partir du deuxième circuit (120) ; la transmission des données dont le groupement de bits a été changé au bus de données (130) ; le rétablissement d'un groupement de bits de données chargées sur le bus de données (130) en un groupement original ; et la délivrance en entrée des données dont le groupement de bits a été rétabli au premier bloc de circuits (110).
41. Procédé selon la revendication 40, caractérisé en ce que : l'étape de changement du groupement de bits de données change certains bits parmi les données délivrées en sortie du deuxième bloc de circuits (120) ; et l'étape de rétablissement du bit rétablit les bits dont le groupement de bits a été changé lors de l'étape de changement du groupement de bits en le groupement original.
FR0207932A 2001-08-30 2002-06-26 Circuit integre a semiconducteurs ayant une fonction de crypteur/decrypteur pour proteger des donnees d'entree/ sortie transmises sur un bus interne Expired - Lifetime FR2829266B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0052927A KR100428786B1 (ko) 2001-08-30 2001-08-30 내부 버스 입출력 데이터를 보호할 수 있는 집적 회로

Publications (2)

Publication Number Publication Date
FR2829266A1 true FR2829266A1 (fr) 2003-03-07
FR2829266B1 FR2829266B1 (fr) 2005-11-25

Family

ID=19713754

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0207932A Expired - Lifetime FR2829266B1 (fr) 2001-08-30 2002-06-26 Circuit integre a semiconducteurs ayant une fonction de crypteur/decrypteur pour proteger des donnees d'entree/ sortie transmises sur un bus interne

Country Status (5)

Country Link
US (1) US8249253B2 (fr)
KR (1) KR100428786B1 (fr)
CN (1) CN1288568C (fr)
DE (1) DE10232348A1 (fr)
FR (1) FR2829266B1 (fr)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7248696B2 (en) * 2002-09-12 2007-07-24 International Business Machines Corporation Dynamic system bus encryption using improved differential transitional encoding
JP2004361986A (ja) * 2003-04-08 2004-12-24 Sharp Corp スクランブル回路
FR2857534B1 (fr) * 2003-07-09 2005-10-28 Innova Card Circuit integre comportant un module ordinaire et un module securise raccordes par une liaison protegee
TWI221966B (en) * 2003-08-28 2004-10-11 Sunplus Technology Co Ltd Device for encrypting/protecting program with protection bit codes
FR2862150B1 (fr) * 2003-11-12 2006-08-11 Innova Card Circuit integre a bus de donnees protege par un brouillage
DE102004030602B4 (de) * 2004-06-24 2007-04-19 Infineon Technologies Ag Paralleler Datenbus und Verfahren zum Betreiben eines parallelen Datenbusses
DE102004037590B4 (de) * 2004-08-03 2006-06-14 Infineon Technologies Ag Integrierte Schaltung und Verfahren zum Betrieb einer solchen
US20060117122A1 (en) * 2004-11-04 2006-06-01 Intel Corporation Method and apparatus for conditionally obfuscating bus communications
US7822994B2 (en) * 2005-01-07 2010-10-26 Konica Minolta Systems Laboratory, Inc. Data bus line and bus having an encryption/decryption device
US20060288209A1 (en) * 2005-06-20 2006-12-21 Vogler Dean H Method and apparatus for secure inter-processor communications
FR2889349A1 (fr) * 2005-07-26 2007-02-02 St Microelectronics Sa Procede et dispositif de securisation d'un circuit integre, notamment une carte a microprocesseur
EP2109314A1 (fr) * 2008-04-11 2009-10-14 Gemalto SA Procédé de protection des clés échangées entre une carte intelligente et un terminal
CN103840937A (zh) * 2012-11-23 2014-06-04 许丰 虚拟量子加密系统
CN105790927B (zh) * 2016-02-26 2019-02-01 华为技术有限公司 一种总线分级加密系统
CN108073837B (zh) * 2016-11-15 2021-08-20 华为技术有限公司 一种总线安全保护方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0720098A1 (fr) * 1994-12-30 1996-07-03 Thomson-Csf Dispositif de sécurisation de systèmes d'information organisés autour de microprocesseurs
US6182217B1 (en) * 1997-03-03 2001-01-30 Siemens Aktiengesellschaft Electronic data-processing device and system
WO2001054083A1 (fr) * 2000-01-18 2001-07-26 Infineon Technologies Ag Circuit de microprocesseurs avec codage

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3083187B2 (ja) * 1991-09-30 2000-09-04 富士通株式会社 電子財布システムの鍵管理方式
JPH0635806A (ja) * 1992-07-21 1994-02-10 Hitachi Ltd メモリicカード
DE4339464C2 (de) * 1993-11-19 1995-11-16 Litef Gmbh Verfahren zur Sprachverschleierung und -entschleierung bei der Sprachübertragung und Einrichtung zur Durchführung des Verfahrens
AU1265195A (en) * 1993-12-06 1995-06-27 Telequip Corporation Secure computer memory card
US5442704A (en) * 1994-01-14 1995-08-15 Bull Nh Information Systems Inc. Secure memory card with programmed controlled security access control
JPH07287742A (ja) * 1994-04-19 1995-10-31 Tokin Corp Icカード
FR2723223B1 (fr) 1994-07-29 1996-08-30 Sgs Thomson Microelectronics Procede de brouillage numerique et application a un circuit programmable
US6038551A (en) * 1996-03-11 2000-03-14 Microsoft Corporation System and method for configuring and managing resources on a multi-purpose integrated circuit card using a personal computer
US6089460A (en) * 1996-09-13 2000-07-18 Nippon Steel Corporation Semiconductor device with security protection function, ciphering and deciphering method thereof, and storage medium for storing software therefor
JP3609263B2 (ja) * 1998-08-25 2005-01-12 富士写真フイルム株式会社 画像暗号化方法および装置、画像復号化方法および装置並びに記録媒体
JP3827050B2 (ja) 1999-03-09 2006-09-27 株式会社ルネサステクノロジ Icカードと半導体集積回路装置
JP3389186B2 (ja) * 1999-04-27 2003-03-24 松下電器産業株式会社 半導体メモリカード及び読み出し装置
US6289455B1 (en) * 1999-09-02 2001-09-11 Crypotography Research, Inc. Method and apparatus for preventing piracy of digital content
US6779112B1 (en) * 1999-11-05 2004-08-17 Microsoft Corporation Integrated circuit devices with steganographic authentication, and steganographic authentication methods
WO2001040950A2 (fr) * 1999-12-02 2001-06-07 Infineon Technologies Ag Dispositif microprocesseur a fonction de chiffrement
US7006629B2 (en) * 2000-12-19 2006-02-28 International Business Machines Corporation Method and system for processing a data set

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0720098A1 (fr) * 1994-12-30 1996-07-03 Thomson-Csf Dispositif de sécurisation de systèmes d'information organisés autour de microprocesseurs
US6182217B1 (en) * 1997-03-03 2001-01-30 Siemens Aktiengesellschaft Electronic data-processing device and system
WO2001054083A1 (fr) * 2000-01-18 2001-07-26 Infineon Technologies Ag Circuit de microprocesseurs avec codage

Also Published As

Publication number Publication date
DE10232348A1 (de) 2003-03-27
CN1407623A (zh) 2003-04-02
CN1288568C (zh) 2006-12-06
FR2829266B1 (fr) 2005-11-25
US8249253B2 (en) 2012-08-21
KR100428786B1 (ko) 2004-04-30
US20030048900A1 (en) 2003-03-13
KR20030018679A (ko) 2003-03-06

Similar Documents

Publication Publication Date Title
US6651170B1 (en) Integrated circuit and smart card comprising such a circuit
FR2829266A1 (fr) Circuit integre a semiconducteurs ayant une fonction de crypteur/decrypteur pour proteger des donnees d&#39;entree/ sortie transmises sur un bus interne
EP1766588B1 (fr) Composant pour module de sécurité
EP0905942B1 (fr) Dispositif de déchiffrage
EP0800691A1 (fr) Procede pour la mise en uvre d&#39;un protocole de communication a cle secrete entre deux dispositifs de traitement
FR2670036A1 (fr) Ensemble de communication de donnees.
EP0606792A1 (fr) Procédé d&#39;authentification d&#39;un ensemble informatique par un autre ensemble informatique
FR2979443A1 (fr) Microcontroleur securise a base de mode
EP1524795B1 (fr) Chiffrement de données dans un appareil électronique à plusieurs processeurs symétriques
US9270274B1 (en) FPGA configuration data scrambling using input multiplexers
FR2803160A1 (fr) Module d&#39;interfacage pour un hote tel un decodeur, decodeur l&#39;integrant et procede de traitement d&#39;informations pour un hote
EP1317732B1 (fr) Carte multiports
EP2323067B1 (fr) Procédé sécurisé de traitement d&#39;un contenu mémorisé au sein d&#39;un composant, et composant correspondant
EP1419640B1 (fr) Reseau numerique local, procedes d&#39;installation de nouveaux dispositifs et procedes de diffusion et de reception de donnees dans un tel reseau
EP0172047B1 (fr) Procédé et système pour chiffrer et déchiffrer des informations transmises entre un dispositif émetteur et un dispositif récepteur
EP2471210A1 (fr) Procédé et dispositif de contre-mesure pour protéger des données circulant dans un composant électronique
EP1032158B1 (fr) Circuit et procédé pour la sécurisation d&#39;un coprocesseur dédié à la cryptographie
EP1723791A1 (fr) Methode de securisation d&#39;un evenement telediffuse
CN110611565B (zh) 数据处理系统、方法及电子设备
EP1493072B1 (fr) Procede et dispositif de protection de donnees numeriques stockees dans une memoire
FR2831365A1 (fr) Procede de controle d&#39;acces a un reseau
FR2759175A1 (fr) Dispositif de desembrouillage d&#39;element de securite et element de securite comprenant un tel dispositif
EP1185913B1 (fr) Procede pour securiser l&#39;utilisation d&#39;un logiciel a partir d&#39;une unite de traitement et de memorisation d&#39;un secret et systyme en faisant application
FR2770065A1 (fr) Procede de transfert de cle d&#39;embrouillage
FR2833737A1 (fr) Lutte contre la reproduction frauduleuse des cartes a puce et des terminaux de lecture de ces cartes

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 15

PLFP Fee payment

Year of fee payment: 16

PLFP Fee payment

Year of fee payment: 17

PLFP Fee payment

Year of fee payment: 19

PLFP Fee payment

Year of fee payment: 20