Telechargé par karim amar

Cryptographie et Architecture

publicité
Cryptographie et Architecture :
Introduction
L. TORRES
Plan
- Généralités & Définitions
- Algorithmes & Architecture : chiffrement symétrique
Exemples :
- DES
- AES
- Algorithmes & Architecture : chiffrement asymétrique
- Multiplication de grands nombres
- RSA
Généralités & Définitions
La cryptologie, étymologiquement la science du secret,
Cette science englobe
la cryptographie — l'écriture secrète
la cryptanalyse — l'analyse de cette dernière.
La cryptologie a permis de mettre en place les concepts suivants, et de les
implémenter au travers de différents algorithmes
Confidentialité
Intégrité
Authentification
Non répudiation
: Informations lisibles que par les personnes autorisées
: le message n'a pas été manipulé sans autorisation ou par erreur
: identification du correspondant et/ou données
: fiabilité des données/documents, non réfutable par l’auteur
Généralités & Définitions
Mais aussi …..
Terminologie et Définitions
Terminologie et Définitions
Terminologie et Définitions
Terminologie et Définitions
Terminologie et Définitions
Les Enjeux
serveurs
portables
ordinateurs
de bureau
PC
distributeurs
cartes à puce
Réseau
d’entreprise
lecteur
mémoire
Terminal
WLAN
Téléphone
PDA
véhicule
Les Enjeux
- on estime aujourd’hui à moins de 4 mn le
temps moyen pour qu’un PC non protégé
connecté à Internet subisse une tentative
d’intrusion ou soit contaminé par un programme
malicieux
- Cout du piratage informatique/électronique ~
PIB de la France (2 000 Milliards/an = 20-30
millions d’emplois/an !)
Les Enjeux
§ Militaires – Diplomates – Grandes entreprises (Intelligence économique)
§ Stratégique
§ Défense
§ Politique
§…
§ Grand Public
§ Liberté individuelle (c’est un moyen de se protéger !)
§ Economique
§ Internet
§ Téléphone
§ jeux etc ….
Les Enjeux
§ Quelques Chiffres
§ En 2008 – 100 Millions de carte à puce seulement en France
§ > 5 Milliards dans le monde
§ 50% des paiements par carte bleue
§ Mais, le marché est essentiellement pour les cartes SIM des Tel portable (70%)
§ Progression du marché de 5 à 10% par an
§ Une demande forte dans les domaines suivants
§ Transport
§ Finance
§ Service Administratif (ex : carte Vitale)
§……
Les Enjeux
§ Des Enjeux pour la cryptographie
§ Votre santé sur le réseau !
Cryptage
Transfert
réseau avec
BRUIT Binaire
Image originale
Clef secrète
Image cryptée
Décryptage
Clef secrète
Les Enjeux
§ Des Enjeux plus « lointains », pour la cryptographie
§ La santé « l’homme numérique »
Les Enjeux
§ Des Enjeux plus « lointains », pour la cryptographie
§ La santé « l’homme numérique »
Controller
Functional
Electrical
Stimulation
FES
Integrated
Neuro-Stimulator
Artificial &
natural
sensors
Les Enjeux
§ Biométrie et authentification
§ Débat éthique sur l’utilisation de la biométrie
Un peu d’électronique ….
•
•
•
•
•
•
•
•
1800 La pile (Volta)
1946 ENIAC premier Calculateur élecrtronique
1947 Le Transistor inventé en 1947
1971 Premier processeur (Intel 4004)
1974 Premières calculettes
1980 Premier processeur 8 bits
1990 Premier processeur 32 bits
2000-2010 Plusieurs processeurs sur une puce
• 80-90 démocratisation des PC
• 90-2010 L’ère du nomadisme
Un peu d’électronique ….
Un circuit =
• ~2 à 3 Milliards de Transistors sur qque cm2
• F= 4Ghz (un calcul chaque 250ps = 250 10-12 seconde)
• Consommation 100 W
• L’élément de base = Transistor = 30 nm (30 10-9 m)
2009
2004
592M
Transistors
2002
2000
1999
9.5M+
Transistors
1995
1993
1989
1985
1982
134,000
Transistors
286
275,000
Transistors
386
1,290,000
Transistors
486
3.1M+
Transistors
Pentium
5.5M+
Transistors
Pentium Pro
1997
7.5m+
Transistors
Pentium II
Pentium III
42M
Transistors
Pentium 4
220M
Transistors
Itanium 2
Itanium 2 (9MB cache)
1.72B
Transistors
Dual Core Itanium
Un peu d’électronique ….
0
0
0
1
1
0
1
0
0
1
1
0
§ Transistor = relais miniature
§ Agencement de transistors
= réalisations de fonctions logiques
= réalisations de mémoires
Un peu d’électronique ….
§ Ecran 17 pouce = 860 cm2
§ 786 432 pixels
§ Surface d’ un pixel = 0,00109 cm2
1 MillionTr
Un peu d’électronique ….
Voila un transistor
Assemblage
F= A + B + C * D
processeur
624
624 W
W module
module
85
85 x85
x85 mm
mm
Copper
Hat
Die x4
Glass Ceramic
LGA spring connector
Board
2009
1.72 Milliards Tr
Transistors
Un peu d’électronique ….
Digital Cores
I/O
Pad
I/O
Interface
CPU
Core 1
Core n
Internal bus
Analog
Cores
Clocks
Memory Access Control
Sensors
1001110 1001110 1001110101010
FLASH or
101010
ROM 101010
RAM 010100100100
EEPROM
01011
01111
10010001000
Regulators
Memories
Méthodes historiques de cryptographie
§ L’essentiel des méthodes de chiffrement reposent sur deux
principes :
– la substitution
– la transposition
§ Substituer signifie que l'on remplace certaines lettres par d'autres,
ou par des symboles
§ Transposition signifie qu'on permute les lettres du message afin de
le rendre inintelligible
§ Au cours des siècles, de nombreux systèmes cryptographiques ont
été mis au point, de plus en plus perfectionnés, de plus en plus
astucieux!
Méthodes historiques de cryptographie
Généralités & Définitions
Un peu d’histoire …..(souvent à des fins militaires !)
- Tablette en argile, XVI avant JC
- Grecque (X a VII av JC) – Transposition des lettres
- Hébreux (V av JC) - substitution alphabétique inversée
- Code César (I ac JC)
- Carré de polybe
1
2
3
4
5
1 A B C D
E
2 F G H I,J K
3 L M N O P
4 Q R S
T
U
5 V W X
Y
Z
Chiffrement Dupont
= 14 45 35 34 33 44
La cryptographie par substitution
monoalphabétique
§ Le codage par substitution monoalphabétique (on dit aussi les
alphabets désordonnés) est le plus simple à imaginer
§ Le texte à coder est le suivant :
– UN PETIT ROSEAU M'A SUFFI POUR FAIRE FREMIR
L'HERBE HAUTE ET TOUT LE PRE ET LES DOUX SAULES
ET LE RUISSEAU QUI CHANTE AUSSI.
§ Le texte codé est alors :
– MT JCGLG UZVCNM S'N VMWWL JZMU WNLUC WUCSLU
Q'DCUYC DNMGC CG GZMG QC JUC CG QCV OZMB
VNMQCV CG QC UMLVVCNM RML IDNTGC NMVVL.
La cryptographie par substitution
monoalphabétique
§
Pour la première lettre, il y a 26 choix possibles, pour la seconde, 25 choix,
etc.... Il existe donc 26! façons de coder distinctes. C'est un nombre en soi
assez impressionnant ... 403291461126605635584000000 combinaisons
§
Un des problèmes avec le code par substitution est de se souvenir de la clé
(c'est-à-dire la permutation) employée. Il n'est en effet pas facile de se
souvenir de 26 lettres dans un ordre quelconque
§
Autre problème : les statistiques, exemple la probabilité d’apparition des
lettes (E = 18%, Y=0.12%, etc .., probabilité 2 lettres successives etc …) –
Robustesse faible
La cryptographie par substitution polyalphabétique
Le chiffre de Vigenere
§ Même si l'on connaissait depuis fort longtemps les faiblesses de la
cryptographie par substitution, il n'y eut pas entre César et le
XVIème siècle de véritable nouveau procédé cryptographique, à la
fois sûr (pour les moyens de l'époque) et facile à utiliser!
§ Blaise de Vigenère, né en 1523, fut l'initiateur d'une nouvelle façon
de chiffrer les messages qui domina 3 siècles durant
§ C'est en 1586 qu'il publie son Traité des chiffres ou Secrètes
manières d'écrire, qui explique son nouveau chiffre
Le chiffre de Vigenere
•
L'idée de Vigenère est d'utiliser un chiffre de César, mais où le
décalage utilisé change de lettres en lettres. Pour cela, on utilise
une table composée de 26 alphabets, écrits dans l'ordre, mais
décalés de ligne en ligne d'un caractère. On écrit encore en haut un
alphabet complet, pour la clé, et à gauche, verticalement, un dernier
alphabet, pour le texte à coder :
Le chiffre de Vigenere
§ Pour coder un message, on choisit une clé qui sera un mot de
longueur arbitraire
§ On écrit ensuite cette clé sous le message à coder, en la répétant
aussi souvent que nécessaire pour que sous chaque lettre du
message à coder, on trouve une lettre de la clé
§ Pour coder, on regarde dans le tableau l'intersection de la ligne de
la lettre à coder avec la colonne de la lettre de la clé
§ Exemple : On veut coder le texte "CRYPTOGRAPHIE DE
VIGENERE" avec la clé "MATHWEB". On commence par écrire la
clef sous le texte à coder :
Le chiffre de Vigenere
•
•
Pour coder la lettre C, la clé est donnée par la lettre M. On regarde
dans le tableau l'intersection de la ligne donnée par le C, et de la
colonne donnée par le M
On trouve O. Puis on continue. On trouve : ORRWPSHDAIOEI EQ
VBNARFDE
Le tournant des deux guerres
La Première Guerre Mondiale
§
Jusqu'au début du XXème siècle, la cryptographie a gardé une importance
mineure, et les méthodes utilisées sont bien souvent rudimentaires
§
Avec la Première Guerre mondiale a lieu une révolution technologique
– Les communications entre l'état-major et les troupes se fait désormais
essentiellement par radio, et sont donc facilement interceptables par
l'ennemi
– Il faut impérativement les chiffrer! Pour la première fois, la cryptographie
aura une importance sur le conflit.
§
La Seconde Guerre mondiale est elle aussi le théâtre d'une révolution
technologique
– celle-ci concerne cette fois les méthodes cryptographiques elle-même
– Pour la première fois, les armées disposent de moyens mécaniques qui
permettent de concevoir des systèmes cryptographiques autrement plus
compliqués que ceux que l'on pratique "à la main"
§
Mais les analyses vont aussi s'automatiser, jusqu'à la naissance du premier
ordinateur...
Le chiffre ADFGVX, et l'offensive allemande de
1918
§ Depuis mars 1918, l'armée allemande utilise un nouveau code pour
communiquer, le chiffre ADFGVX, ou GEDEFU 18 (GEheimschrift
DEr FUnker 18, chiffre des télégraphistes 18)
§ Ce chiffre est constitué d'une substitution de type carré de Polybe,
suivie d'une transposition
§ Pour réaliser la substitution, les 26 lettres de l'alphabet et les 10
chiffres sont rangés dans un tableau 6×6, aux extrémités
desquelles on a ajouté les lettres ADFGVX
§ Chaque lettre est codé par le couple de lettres qui correspond à sa
ligne et à sa colonne. Ainsi, R est codé DF, et le message
RENFORT COMPIEGNE 16H10 devient : DFAXV VFAFD DFGFD
DFDFG VAGDA XGGVV AXXAV FDVXA DX
Le chiffre ADFGVX, et l'offensive allemande de
1918
§ On choisit ensuite, pour faire la transposition,
une clé qui est un mot courant, par exemple
DEMAIN. On écrit le texte intermédiaire sous ce
mot, puis on permute les colonnes par ordre
alphabétique croissant de la clé.
§ Il ne reste plus qu'à relire le tableau de gauche à
droite, et de haut en bas : XDFVA VDFAD
FFDGF FDGDV AAGXV GGAVX FXADV
VXXAD
§ Les lettres ADFGVX ont été choisies pour ce
code car l'essentiel des télécommunications est
transmis par radio, et les lettres ADFGVX ont
des codes morses très différents. Les utiliser
évite les confusions pendant la transmission.
Le tournant des deux guerres
La Seconde Guerre Mondiale
§ La machine Enigma
§ L'Enigma se présente sous la forme d'une caisse en
bois de 34×28×15 cm, et pèse une douzaine de
kilos.
§ Elle est composée :
– d'un clavier alphabétique
– d'un tableau de connexion
– de 3 rotors mobiles à 26 positions
– d'un rotor renvoi à 26 positions (le réflecteur)
– d'un tableau de 26 ampoules correspondant aux
26 lettres de l'alphabet.
Généralités & Définitions
Un peu d’histoire …..(souvent à des fins militaires !)
- Chiffrement par substitution polyalphabétique (XVéme)
Consiste à remplacer chaque lettre du texte en clair par une lettre
d'un autre alphabet et à changer plusieurs fois d'alphabet de
substitution au cours du chiffrement,
rendant la cryptanalyse par analyse de fréquence inefficace.
- Machine Enigma (1940)
Chaque lettre est remplacée par une autre,
l'astuce est que la substitution change d'une lettre à l'autre.
Il y a trois éléments à connaître pour pouvoir coder un message avec la machine Enigma :
- la position des 6 fiches du tableau de connexion: d'abord, il faut choisir 12 lettres parmi 26.
C'est donc le nombre de combinaisons de 12 parmi 26, soit 26! /(12!14!) = 9 657 700.
Maintenant, il faut choisir 6 paires de lettres parmi 12, soit 12!/6!, et comme la paire (A,D) donne la même connexion
que la paire (B,A), il faut encore diviser par 26. On trouve finalement 100 391 791 500.
- l'ordre des rotors: il y a autant d'ordres que de façons d'ordonner 3 éléments : 3!=6.
la position initiale des rotors: chaque rotor ayant 26 éléments, il y a 26*26*26=17 576 choix.
On multiplie tout cela, et on obtient plus de 1016 possibilités, ce qui est énorme pour l'époque !
Généralités & Définitions
Un peu d’histoire …..(souvent à des fins militaires !)
- 1970-1977 adoption du protocole DES (Data Encryption Standard) du à Feitel
- 1976 Diffie-Hellman : échange de clés secrètes et notion de clef publique
- 1978 RSA premier protocole à clefs publiques
- 1985 El-Gamal nouveau concept.
- 1985 Koblitz cryptographie sur les courbes elliptiques
- 1997 AES – Advanced Encryption Standard
- 2000 Avancés importants sur les courbes elliptiques
- et ca va très vite actuellement ……
Généralités & Définitions
Principe de Kerchoffs (XIXème) :
• Une information codée ne doit en aucun cas pouvoir être
déchiffrée sans la connaissance de sa clé.
• Les interlocuteurs ne doivent pas subir de dégâts au cas
où le système de codage serait dévoilé.
• La clé doit être simple et modifiable à souhait.
• Les cryptogrammes doivent être transportables, c'est-àdire télégraphiables.
• L'appareil de codage et les documents doivent être
transportables.
• Le système doit être simple d'utilisation.
• Le système de chiffrage doit être au préalable examiné
par des experts.
Généralités & Définitions
Cryptographie Moderne (Confidentialité)
Symétrique
Asymétrique
Les clés symétriques: clés utilisées pour le chiffrement et pour le déchiffrement.
On parle alors de chiffrement symétrique ou de chiffrement à clé secrète.
Les clés asymétriques: clés utilisées dans le cas du chiffrement asymétrique
(aussi appelé chiffrement à clé publique).
Une clé différente est utilisée pour le chiffrement et pour le déchiffrement
Généralités & Définitions
• Clé secrète (privée, symétrique)
– La clé de déchiffrement est calculée à partir de la clé de cryptage et
vice-versa, donc la securité réside dans le secret de la clé.
Je t’aime,
Alice
Chiffrement
çà_168534sd&é
ETç[email protected]\dfyhSDG
Déchiffrement
Canal sécurisé
Action de Bob
Je t’aime,
Alice
Moi aussi je
t’aime,
Bob…
Action d’Alice
Clé secrète
partagée
Bob
Alice
Généralités & Définitions
•
Clé publique (asymétrique)
– Il y a une clé pour chiffrer et une autre pour déchiffrer. La clé pour la cryptage
doit être rendue publique, et il n’est pas possible découvrir la clé secrète à partir
de la clé publique. Exemples: RSA, ElGammal, ECC
Clé publique
d’Alice
Je veux
garder mes
secrètes..
F(x)
Généralités & Définitions
• Clé publique (asymétrique)
Clé publique
d’Alice
Moi, j’ai la clé
publique et le
message chiffré, je
peux donc découvrir
la message!!!
Qmlskjfd qskdnf
klh_& »’(*4326
54367354754367
46578,fgH!kdjh
Cryptographie
Salut Alice,
veux-tu bien
dîner avec moi ce
soir?
Qmlskjfd qskdnf
klh_& »’(*43265
43673547543674
6578,fgH!kdjh
Internet
Salut Alice,
Qmlskjfd
qskdnf
veux-tu»’(*4326
bien
klh_&
dîner avec moi
54367354754367
Je veux
ce soir?
46578,fgH!kdjh0
garder mes
secrètes..
Algorithmes & Architecture :
chiffrement symétrique
§ Par bloc ou par flux mais très rapide (plusieurs Mégabits par
secondes) donc adapté aux applications télécoms actuelles
§ Le chiffrement repose sur l’utilisation d’une seule et même clé
secrète (principe de Kerckhoffs)
§
Problème nécessite de partager cette clé pour communiquer
Distinction à faire :
- les algorithmes en blocs, qui prennent n bits en entrée et en ressortent n,
- les algorithmes à flots (ou par flux), qui chiffrent bit par bit
Algorithmes & Architecture :
chiffrement symétrique
• Chiffrement symétrique par bloc (et aussi flux ??)
Repose sur un principe de Diffusion/Confusion (c’est antique !)
Idée de confusion
La relation entre, d.une part le texte clair et la clef de
chiffrement, et d.autre part le texte chiffré doit être aussi
difficile que possible à établir.
Le calcul de l.inverse est de complexité élevée.
Principe présenté souvent comme réalisé par les substitutions.
Idée de diffusion
Une modification même mineure du texte en clair doit se
traduire par une modification très importante du texte chiffré.
Chaque symbole en clair doit être .diffusé. dans tout le texte chiffré
(chaque symbole chiffré doit dépendre de beaucoup de symboles en clair).
Principe présenté souvent comme réalisée par les permutations.
* Claude Shannon ‘Communication Theory Of Secrecy Systems’ Bell Systems journal 1949
Algorithmes & Architecture :
chiffrement symétrique
•
Substitutions (contribue à la confusion) un symbole du texte en clair est
remplacé par un autre symbole dans le texte chiffré.
ABCDEFà %$)#_P
•
A
B
C
D
E
F
%
$
)
#
_
P
Permutations (contribue à la diffusion) les symboles en clair sont réordonnés
ABCDEFàDFABCE
A
B
C
D
E
F
A
B
C
D
E
F
Algorithmes & Architecture :
chiffrement symétrique
§
Chiffrement symétrique par bloc (schéma de Feistel)
- Soit M le message de N bits a chiffrer,
- Soit une fonction F et K la clef
- La fonction F est itérée plusieurs fois (nombre de tour ou round)
- À chaque tour, la clé k utilisée est changée et le message que l'on
chiffre est le résultat de l'itération précédente.
C1 = F(k1,M) ;
maître K
C2 = F(k2,C1) ;
...
Cr = F(kr,Cr − 1) ;
avec ki utilisées sont déduites d'une clé
La fonction F utilisée doit être une permutation, c'est-à-dire qu'il faut
pour toute clé K et message M pouvoir recalculer M a partir de
F(k,M).
Formellement, cela signifie qu'il existe une fonction G vérifiant
G(k,F(k,M)) = M.
Algorithmes & Architecture :
chiffrement symétrique
§
Chiffrement symétrique par bloc (schéma de Feistel)
- Soit M le message de N bits a chiffrer,
- Soit une fonction F et K la clef
- La fonction F est itérée plusieurs fois (nombre de tour ou round)
- À chaque tour, la clé k utilisée est changée et le message que l'on
chiffre est le résultat de l'itération précédente.
C1 = F(k1,M) ;
maître K
C2 = F(k2,C1) ;
...
Cr = F(kr,Cr − 1) ;
avec ki utilisées sont déduites d'une clé
La fonction F utilisée doit être une permutation, c'est-à-dire qu'il faut
pour toute clé K et message M pouvoir recalculer M a partir de
F(k,M).
Formellement, cela signifie qu'il existe une fonction G vérifiant
G(k,F(k,M)) = M.
Algorithmes & Architecture :
chiffrement symétrique
• Chiffrement symétrique par bloc (schéma de Feistel) - Robustesse
Deux points importants :
-
l'algorithme de cadencement de clé
la robustesse de la fonction F
-
Dire de la fonction F qu'elle est robuste signifie qu'on la suppose
difficile à inverser sans connaître la clé k ayant servi dans le calcul de
C = F(k,M). En d'autres termes, connaissant seulement C, F et G, on
ne doit pas pouvoir retrouver le message M, si ce n'est en effectuant
une recherche exhaustive de la clé k, c'est-à-dire en calculant
1) X = G(k,C);
2) Y = F(k,X);
et cela pour toutes les clés k jusqu'à ce que l'on en trouve une pour laquelle Y est égal à C. On est alors
assuré d'avoir le message M qui n'est autre que X. Le problème étant que si k est constitué de l bits, il
faut en moyenne 2l / 2 = 2l − 1 essais. En prenant l assez grand, on peut être sur que cela n'est pas
réalisable en pratique: supposons que l'on puisse essayer 10^9 (un milliard) clés par seconde, soit
environ 2^30, il y a 31557600 secondes par an, soit 2^25, en conséquence on peut tester 255 clés par
an. Si on prend pour l une valeur de 80 bits, il faudrait 224 ans, plus de 1 million d'années.
Algorithmes & Architecture :
chiffrement symétrique
§ Chiffrement symétrique par bloc (schéma de Feistel) - Robustesse
Une technique très répandue pour fabriquer des fonctions F est celle du
schéma de Feistel. Dans ce schéma, le message à chiffrer est
découpé en 2 blocs de n/2 bits, M = (L,R) et le message chiffré est
C = (R,L + f(k,R))
où le '+' est le XOR et f est une fonction quelconque, on n'a plus à
supposer que c'est une permutation. En effet, on peut retrouver M à
partir de la clé k
1) connaissant C, on connaît R qui est sa partie gauche,
2) on calcule f(k,R),
3) on ajoute le résultat du calcul précédent à la partie droite de C, et
on retrouve L,
cela sans restriction sur f. Clairement, dans ce schéma, la robustesse de
F repose sur la fonction f.
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : L’algorithme D.E.S, Date Encryption Standard
• Mise au point par IBM en 1968
• Standard de chiffrement utilisé depuis 1979 – (normalisé en 1976)
• Schéma de Feistel permettant le construire un chiffrement en itérant
une fonction de chiffrement relativement faible
• Utilise le principe de Diffusion/Confusion
• Beaucoup implémenté dans les composants
de sécurité comme les cartes à puce
• Taille de bloc 64 bits
• Taille de clé 56 bits (sous clés sur 48 bits)
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : L’algorithme D.E.S, Date Encryption Standard
M
K0
C1=F(k0,M)
C1
K1
K
C2=F(k1,C1)
C2
K2
C2=F(k2,C2)
.
.
.
Kn
C2=F(k2,C2)
Cn
- Répétions n fois avec des sous clés
- Sous clés dérivées de la clé principale
- Le nombre de tour (round) définit la sécurité mais
aussi la rapidité
- 16 tours dans le cas du DES
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : L’algorithme D.E.S, Date Encryption Standard
- Entrée Bloc 64 bits
- L(i-1) 32 bits poids forts
- R(i-1) 32 bits poids faibles
- Chiffrement sur la partie droite
- ki sur 48 bits
Permutation finale et initiale est historique
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : L’algorithme D.E.S, Date Encryption Standard
Permutation finale et initiale est historique
- Le bit 1 devient le 58, le bit 2 devient 50 … etc ….
- Permutation sur les 64 bits
- Permutation finale est l’inverse
- Implantation facile = « câblage »
- Intérêt ? N’amène rien en terme de sécurité !
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : L’algorithme D.E.S, Date Encryption Standard
8
Substitution (Sbox) – Confusion -
Permutation - Diffusion
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : L’algorithme D.E.S, Date Encryption Standard
Phase d’expansion 32bits à 48 bits
R(i-1)
E( R(i-1) )
- Bit 1 devient 32, bit 2 devient 1
- Certains bits recopiés pour passer de 32 à 48 bits
- L’expansion est inversible (bijection entre les configuration 32bits & 48 bits)
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : L’algorithme D.E.S, Date Encryption Standard
Phase de substitution (Exemple S1)
E (R(i-1)) + ki
B=S(E (R(i-1)) + ki)
- Contribue à la confusion par une fonction non linéaire
- La table de substitution est différente pour chaque Round
- Substitution d’une valeur de 6 bits par une valeur de 4 bits
- Les 2 bits poids faible & fort sélectionnent la ligne, les 4 bits intermédiaires la colonne
Exemple :
100011 à Ligne : 11
Colonne : 0001
Donc 35 devient, ligne 4 colonne 1, correspond à 12
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : L’algorithme D.E.S, Date Encryption Standard
Phase de Permutation
B=S(E (R(i-1)) + ki)
P(B)
- A Chaque étage une permutation, toujours la même
- Remplacer le bit 1 par le bit 16, le bit 2 par le bit 7 etc ….
- Contribue à la diffusion
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : L’algorithme D.E.S, Date Encryption Standard
Résumé :
- Réseau de Feistel, c’est involutif, bijection qui est sa propre inverse
- Même algorithme pour le chiffrement que le déchiffrement
- Attention, le dernier étage prépare le chiffrement en inversant L & R
En effet lors du chiffrement en entrée [a,b] avec L(i-1)=a et R(i-1)=b en sortie [b,a+F(b)]
Lors du déchiffrement en entrée [a+F(b), b], en sortie [b, a+F(b)+F(b)]=[b,a]
Donc en déchiffrement on inverse la droite et la gauche, sur tous les étages mais à la fin
On inverse une fois de plus (comme au chiffrement)
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : L’algorithme D.E.S, Date Encryption Standard
Gestion de la clé (voir annexe pour le détail de la génération des clefs)
- Clé en fait de 64 bits mais 8 bits de parité à 56 bits
- Pour chaque round, une sous clé différenteà 16 sous clés différentes
- Sous clés de 48 bits,
Clé initiale (64 bits)
Permutation (64 -> 56 bits)
Partie gauche (28 bits)
Partie droite (28 bits)
Décalage à gauche d’un bit
Décalage à gauche d’un bit
Partie droite décalée (28 bits)
Partie gauche décalée (28 bits)
Permutation (56 -> 64 bits)
Clé de 48 bits
Itération suivante
Vers cryptage principal
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : L’algorithme D.E.S, Date Encryption Standard
Robustesse du DES
- Secret reposant sur une clef de 56 bits (faible actuellement)
- Attaques pour casser la clef (< 24h00) … oui mais …
- Extension du DES vers le 3-DES (clé de 168 bits, mais 3 fois plus en temps !)
Applications actuelles du DES ou 3DES
- Internet (implantation logicielle)
- Smart Card (ex CB, implantation matérielle)
- Paiement électronique
- etc …
Algorithme le plus implanté actuellement, malgré
Sa faible robustesse
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : Quelques éléments d’architecture d’implantation du D.E.S
Sol 1 : Solution combinatoire
- Purement combinatoire
-16 Rondes
- Génération des clés en parallèle
- Solution « gourmande »
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : Quelques éléments d’architecture d’implantation du D.E.S
Plusieurs solutions architecturales
Sol 2 :
- Une seul round, algorithme séquentiel
- Contrôle à réaliser (Machine d’état)
- Tround = Tmux+TCL+Treg
- Pour 16 Round TDES = 16* Tround
Combinatorial Logic = Chiffrement + Génération de sous clé
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : Quelques éléments d’architecture d’implantation du D.E.S
Déroulage boucle (Loop Unrolling)
Sol 3 :
- Mutualisation ressources
- Exemple deux rounds
- Contrôle à réaliser (Machine d’état)
- TDES = 8*Tmux+16*TCL+8*Treg
- Si 4 Combinatorial Logic
- TDES = 4*Tmux+16*TCL+4*Treg
à On arrive à mutualiser Treg et Tmux, mais
Pas TCL
Architecture : Le pipeline
• Exemple
• Cyril, Arnaud, David, Laurent
(tâche ménagère)
• Lavage 30 minutes
• Séchage 40 minutes
• Pliage 20 minutes
A
B
C
D
Architecture : Le pipeline
6
7
8
9
10
11
12
Time
30 40 20 30 40 20 30 40 20 30 40 20
T
a
s
k
O
r
d
e
r
A
B
C
D
• Séquentiellement 6H00
• Avec pipeline ?
Architecture : Le pipeline
6
7
8
9
Time
30 40
T
a
s
k
O
r
d
e
r
40
40
40 20
A
B
C
D
• Avec pipeline : 3,5 h00
10
11
12
Architecture : Le pipeline
6 PM
7
8
9
Time
30 40
T
a
s
k
O
r
d
e
r
A
B
C
D
40
40
40 20
• Pipeline utile pour
améliorer le débit, mais
latence …
• Débit du pipeline limité par
la tâche la plus longue
• Opération Multi - tâche
• Accélération = Nombre
étage de pipeline
• Temps pour “remplir”
pipeline et temps pour
“sortir” reduit la vitesse
• Attention aux dépendances
de données (aléas)
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : Quelques éléments d’architecture d’implantation du D.E.S
Data1,K1
Res(Data1,K1)
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : Quelques éléments d’architecture d’implantation du D.E.S
Déroulage boucle (Loop Unrolling)
Data2,K1
Sol 4 :
- 2 données en parallèle
- Augmentation du débit (si flot)
- Par contre latence pour remplir le pipeline
Res(Data1,K1), K2
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : Quelques éléments d’architecture d’implantation du D.E.S
Déroulage boucle (Loop Unrolling)
Data2,K1
Sol 4 :
- 2 données en parallèle
- Augmentation du débit (si flot)
- Par contre latence pour remplir le pipeline
Res(Data1,K1), K2
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : Quelques éléments d’architecture d’implantation du D.E.S
Implantation des fonctions de permutation et d’expansion
R(i-1)
C’est uniquement du câblage !
bit1
bit2
bit3
bit4
bit5
bit1
bit2
bit3
bit4
bit5
bit32
bit48
E( R(i-1) )
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : Quelques éléments d’architecture d’implantation du D.E.S
Implantation des fonctions de permutation et d’expansion
R(i-1)
C’est uniquement du câblage !
bit1
bit2
bit3
bit4
bit5
bit1
bit2
bit3
bit4
bit5
bit32
bit48
E( R(i-1) )
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : Quelques éléments d’architecture d’implantation du D.E.S
Phase de substitution (un peu plus complexe & crucial)
Rappel :
Les 2 bits poids faible & fort sélectionnent la ligne,
les 4 bits intermédiaires la colonne
Exemple :
100011 à Ligne : 11
Colonne : 0001 et 35 à 12
E (R(i-1)) + ki
B=S(E (R(i-1)) + ki)
Solution 1 : fonction combinatoire
E5….. .E0
B3…B0
000000
000001
000010
000011
000100
1110 (14)
0000 (0)
0100 (4)
1111 (15)
1101 (13)
111111
1101 (13)
Table de vérité à minimisation logique
Fonction booléenne !
Plusieurs centaines de portes logiques !
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : Quelques éléments d’architecture d’implantation du D.E.S
Phase de substitution (un peu plus complexe & crucial)
Solution 2 : Utilisation d’une Look Up Table (ROM ou RAM)
E5….. .E0
B3…B0
000000
000001
000010
000011
000100
1110 (14)
0000 (0)
0100 (4)
1111 (15)
1101 (13)
Ex: A l’adresse 000011 on sort la valeur 1111
Donc 6 bits d’adressage et stockage de 26 valeurs de
4 bits, soit 256 bits à stocker par SBOX
Simple et efficace !
111111
1101 (13)
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : Quelques éléments d’architecture d’implantation du D.E.S
Implantation VHDL (voir document en annexe)
Lien : http://www.opencores.org
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 1 : Quelques éléments d’architecture d’implantation du D.E.S
Exemple de performances du DES
Cible ASIC :
~ 15-20 Kgates, Techno 130nm 90nm, F ~ 200 - 500 Mhz, 1-5Gbits/s de débit
Cible FPGA :
~ 400 slices, F~ 100 Mhz, 300-500 Mbits/s de débit
Cible logicielle
Processeurs embarqués, DSP, ARM etc .. Débit ~ 100-300 Mbits (bien optimisé)
Algorithmes & Architecture :
chiffrement symétrique
q Modes de fonctionnement
Mode ECB – Electronic Code Book
DES
DES-1
- Utilisation sur des blocs de 64 bits
- Pour des blocs < 64 bits faire du padding (ajout de zéro)
- Pb :
Si message identique, message chiffré aussi, peut faciliter les attaques
(sécurité faible en fait)
Algorithmes & Architecture :
chiffrement symétrique
q Modes de fonctionnement
Mode CBC – Cipher Block Chaining
DES
DES-1
- Utilisation d’un vecteur d’initialisation (IV)
- Chaque bloc chiffré dépend du précédent
- Premier bloc « Xor » avec le IV. Yo=DES(X0+ IV), Yi = DES (Xi+Yi-1)
- Avantage : Si message identique, message chiffré chaque fois différent
Algorithmes & Architecture :
chiffrement symétrique
q Modes de fonctionnement
Mode CFB – Cipher Feedback Block
DES
DES-1
- Utilisation, chiffrer des messages inférieurs à 64 bits (sans faire du padding) …
- …. Ou pour avoir un chiffrement à flux
- SR (Shift Register) pré-chargé avec un IV
- Premier bloc « Xor » avec le IV. Yo=DES(X0+ IV), Yi = DES (Xi+Yi-1)
- Avantage : latence faible, chiffrement par flux et non par bloc
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
- Appel à candidature en 1997 pour un nouveau chiffrement symétrique
- Candidat retenu Rinjdael (Joan Daemen, Vincent Rijmen) – Belge
- Adopté par le NIST en 2001
- Caractéristiques générales
- Chiffrement symétrique
- Supporte les modes ECB, CBC, CFB
- Bloc qu moins de 128 bits
- Clé de 128, 192 ou 256 bits
- 10 à 14 rondes
- Le déchiffrement utilise une méthode du chiffrement
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
- En entrée 16 Octets
- Permutation selon une table pré-définie
- Octets placés dans une matrice 4x4, rotation des lignes vers la droite
- Application d’une transformation linéaire, consiste en la multiplication
binaire avec des polynômes (Multiplication dans le groupe de Galois GF(28)
- Cette transformation = diffusion
- XOR entre cette matrice et une matrice intermédiaire
- Ces différentes opérations sont répétées plusieurs fois (10 à 14 fois)
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
Mise en forme des entrées
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
Etape 1 : AddRoundKey
State
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
Etape 2 : Rounds 1-9 – SubBytes - Substitution
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
Etape 2 : Rounds 1-9 – ShiftRows
Rq: Cette opération consiste à décaler des lignes dans la matrice State. En ce sens, elle
garantit le principe de diffusion de Shannon. De faibles changements dans le texte clair
impliquent de grands changements dans le texte chiffré.
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
Etape 2 : Rounds 1-9 – MixColumns
Multiplication dans le corps de galois GF(28)
Algorithmes & Architecture :
chiffrement symétrique
q Quelques rappels sur l’arithmétique dans le corps de Galois (GF(28))
1) Représentation polynomiale
Soit B : b7,b6,b5,b4,b3,b2,b1,b0 polynôme correspondant
b7x7+b6x6+b5x5+b4x4+b3x3+b2x2+b1x1+b0x0
Exemple : 01010111 à x6+x4+x2+x+1
2) Addition dans le corps de Galois
C’est une somme modulo 2 à c’est un XOR !
3) Pour la Multiplication c’est un peu plus compliqué (exemple sur GF(28))
Algorithmes & Architecture :
chiffrement symétrique
q Quelques rappels sur l’arithmétique dans le corps de Galois (GF(28))
3) Pour la Multiplication c’est un peu plus compliqué
Dans cette exemple c(x) ne peut représenter par un polynôme supérieur à 4
Pour réduire c(x) à un polynôme d’ordre 4 à réduction modulaire
Soit M(x) = x4+1, il faut calculer c(x) mod M(x)
Rappel : xj mod x4+1 = xjmod4
Algorithmes & Architecture :
chiffrement symétrique
q Quelques rappels sur l’arithmétique dans le corps de Galois (GF(28))
3) Pour la Multiplication c’est un peu plus compliqué
Soit d(x) = a(x)b(x) mod m(x)
Peut se mettre sous la forme matricielle
Algorithmes & Architecture :
chiffrement symétrique
q Quelques rappels sur l’arithmétique dans le corps de Galois (GF(28))
Dans le cas de l’AES, m(x) = x8+x4+x3+x+1 (polynôme irréductible)
Algorithmes & Architecture :
chiffrement symétrique
q Quelques rappels sur l’arithmétique dans le corps de Galois (GF(28))
Quelques astuces
Multiplication par 01 : nombre reste inchangé
Multiplication par 02 :
MSB = 0
MSB = 1 à 2N + 1B
Multiplication par 03 : multiplication par deux suivie d’une addition modulo
2
Algorithmes & Architecture :
chiffrement symétrique
q Quelques rappels sur l’arithmétique dans le corps de Galois (GF(28))
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
Extensions de la clé
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
Extensions de la clé
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
Extensions de la clé
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
Pour le premier vecteur
=
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
Pour les autres vecteurs :
Wi=Wi-4 XOR Wi-1
Algorithmes & Architecture :
chiffrement symétrique
128-bit
plaintext
KeyExpansion
128-bit
key
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
Quelques éléments d’implantation matérielle
Round Transformation
ShiftRows
MixColumns
AddRoundKey
SubBytes
round++
No
round = 10?
Yes
128-bit
ciphertext
Algorithmes & Architecture :
chiffrement symétrique
128-bit
plaintext
KeyExpansion
128-bit
key
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
Quelques éléments d’implantation matérielle
Round Transformation
ShiftRows
MixColumns
AddRoundKey
SubBytes
round++
Simple XOR
No
round = 10?
Yes
128-bit
ciphertext
Algorithmes & Architecture :
chiffrement symétrique
128-bit
plaintext
KeyExpansion
128-bit
key
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
Quelques éléments d’implantation matérielle
Round Transformation
ShiftRows
MixColumns
AddRoundKey
SubBytes
round++
Décalage de registre
No
round = 10?
Yes
128-bit
ciphertext
Algorithmes & Architecture :
chiffrement symétrique
128-bit
plaintext
KeyExpansion
128-bit
key
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
Quelques éléments d’implantation matérielle
Round Transformation
ShiftRows
MixColumns
AddRoundKey
SubBytes
round++
1) Utilisation d’une LUT ou ROM
Taille (16x16) (le + efficace)
No
round = 10?
Yes
128-bit
ciphertext
2) Utiliser la transformation algébrique
Qui est plus complexe (non utilisée)
Algorithmes & Architecture :
chiffrement symétrique
128-bit
plaintext
KeyExpansion
128-bit
key
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
Quelques éléments d’implantation matérielle
Round Transformation
ShiftRows
MixColumns
AddRoundKey
SubBytes
round++
Utilisation de la multiplication par 01, 02, 03
dans GF(28)
No
round = 10?
Yes
128-bit
ciphertext
Multiplication par 02
Multiplication par 03
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
Possibilité de pipeliner l’AES
SubBytes
ShiftRows
MixColumns
KeyExpansionA
KeyExpansionB
KeyExpansion
KeyExpansionC
AddRoundKey
Algorithmes & Architecture :
chiffrement symétrique
q Exemple 2 : L’algorithme A.E.S, Advanced Encryption Standard
Quelques résultats de performance
Cible ASIC :
~ 20 Kgates, Techno 130nm 90nm, F ~ 200 - 500 Mhz, 1-5Gbits/s de débit
Cible FPGA :
~ 1600 slices, F~ 100 Mhz, 300-500 Mbits/s de débit
Cible logicielle
Processeurs embarqués, DSP, ARM etc .. Débit ~ 100-300 Mbits (bien optimisé)
Algorithmes & Architecture :
chiffrement asymétrique
•
Clé publique (asymétrique)
– Il y a une clé pour chiffrer et une autre pour déchiffrer. La clé pour la cryptage
doit être rendue publique, et il n’est pas possible découvrir la clé secrète à partir
de la clé publique. Exemples: RSA, ElGammal, ECC
Clé publique
d’Alice
Je veux
garder mes
secrètes..
F(x)
Algorithmes & Architecture :
chiffrement asymétrique
• Clé publique (asymétrique)
Clé publique
d’Alice
Moi, j’ai la clé
publique et le
message chiffré, je
peux donc découvrir
la message!!!
Qmlskjfd qskdnf
klh_& »’(*4326
54367354754367
46578,fgH!kdjh
Cryptographie
Salut Alice,
veux-tu bien
dîner avec moi ce
soir?
Qmlskjfd qskdnf
klh_& »’(*43265
43673547543674
6578,fgH!kdjh
Internet
Salut Alice,
Qmlskjfd
qskdnf
veux-tu»’(*4326
bien
klh_&
dîner avec moi
54367354754367
Je veux
ce soir?
46578,fgH!kdjh0
garder mes
secrètes..
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
- Inventé en 1977
- Repose sur la difficulté de la factorisation de grand nombre
- Les clefs entre 512 bits et 2048 bits (voir 4096 bits)
- C’est une arithmétique modulaire
• Considérons p et q deux nombres premiers
• Soit d un entier tel que d soit premier avec (p-1)(q-1)
• Soit n tel que n=pq
• Le couple (n,d) constitue la clé privée
• Soit X le message à chiffrer, X < n
• Soit j(n) = (p-1)(q-1), indicateur d’euler
Rappel : l'indicateur d’euler d'un entier positif n est défini comme le
nombre d'entiers positifs inférieurs ou égaux à n et premiers avec n.
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
• La clé publique est donnée par le couple (e,n), tel que ed=k(n-1)(p-1) + 1
C’est aussi noté ed º1 mod ((p-1)(q-1))
Rappel sur la Congruence : On dit que x est congru à y modulo n, on note xº y mod n lorsque x-y
est un multiple de n, c’est à dire que x=y + kn. (cela revient aussi à avoir x mod n = y).x,y et k
sont entiers.
• Pour Chiffrer
C= Xe mod n (exponentiation modulaire)
• Pour Déchiffrer
Y= Cd mod n =Xed mod n = X
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Calcul de la clé
• Le calcul de la clé revient à calculer ed º 1 mod ((p-1)(q-1))
• On fixe d, et il reste donc à calculer e =(d)-1 mod ((p-1)(q-1))
• Utilisation de l’algorithme d’euclide étendu pour le calcul de e
• Rappel sur l’algo. Euclide étendu (http://www.grc.nasa.gov/WWW/price000/pfc/htc/zz_xeuclidalg.html)
a et b entiers positifs.
Si pgcd (a,b) = d, il existe deux entier u et v tel que au+bv=d (égalité de bezout)
L’algorithme d’euclide étendu permet de trouver le couple u,v. dans notre cas pgcd(a,b)=1, cad a et b premier
R0=a, R1=b, U0=1, U1=0,V0=0, V1=1 ;
Tant que R1 > 0 faire
Q= Quotient_division (R0,R1)
R= Reste_division (R0,R1)
U=U0 – Q * U1
V=V0 – Q V1
R0=R1
R1=R
U0=U1
U1=U
V0=V1
V1=V
Fin ;
En sortie U0=u et V0=v.
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Exemple
Etape 1 : Soit deux nombres premiers p= 11 et q=23, donc n= 253 et
φ(n)=220.
Etape 2 : On choisi d, tel que pgcd (d, φ(n)) = 1 et d < φ(n), prenons d=27.
Etape 3 : calcul de e, pour cela on utilise le théorème d’euclide étendu, tel
que ed - k φ(n) = 1, cad 27e– 220k=1. Le résultat donne e=163.
Etape 4 : Supposons que l’on désire coder « boby », le code ASCII
équivalent est 98 111 98 121
Chiffrement :
C(b) = 98163 mod 253 = 131
C(o) = 111163 mod 253 = 56
C(b) = 98163 mod 253 = 131
C(y) = 121163 mod 253 = 154
Message chiffré est donc : 131 56 131 154
Pour déchiffrer : 13127 mod 253 = 98, 5627 mod 253 = 111, 13127 mod 253 =
98, 15427 mod 253 = 121.
On retrouve bien le message « boby ».
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Problèmes architecturaux liés au RSA
• Arithmétique modulaire sur des grands nombres
• En fait on doit calculer Xe mod n , avec e et n sur 512 à 4096 bits
• Revient à faire une multiplication modulaire
• Pour cela, en matériel
• Décomposition simple
• Méthode de Karatsuba
• Algorithme de Montgomory
• Residue Number System
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Décomposition simple
- Se ramener à plusieurs multiplications sur 16 ou 32 bits
- Principe : 4 multiplications sur n/2 bits est moins coûteuse
qu’une multiplication sur n bits
Soit le produit de U par V deux nombres codés sur 2n bits
avec U=2n.U1+U0 et V=2n.V1+V0
Le produit UV :
UV= 22n.U1V1+2n(U1V0+V1U0)+U0V0
Mais les produits U1V1, U1V0, V1U0, et U0V0 sont aussi
décomposables de la même manière
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Décomposition simple
Soit le produit 103*165 avec une décomposition en un seul
niveau.
U1
U0
1
U= 0110 0111
1
U1
1
U0
V1
0
U1
0
U0
1
0
1
1
V1 U0
x
1
V0
1
U1
x
x
0
V1 V0 V1 V0
1
1
V0 U0
+
V0
V= 1010 0101
1
1
U1
V1
x
+
+
S=U1*V1
Produit de U1 x V1
Opérateur Delta
D
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Décomposition simple
1
1
1
1
0
U1 U0 V1 V0
0
0
0
1
1
0
0
U1 U0 V1 V0
U1 U0 V1 V0
D
D
D
0
0
1
1
U1 U0 V1 V0
1
1
0
V0
V1
V0
R1
R2
R3
R4
R5
R6
R7
R8
.
1
1
0
0
V= 1010 0101
1
1
0
0
V1 V0 V1 V0
.
.
.
.
D
U1 U0 U1 U0
V1
V0
0
V1
.
U= 0110 0111
0
U0
.
U0
1
U1
+
+
1
U0
D
+
U1
0
U1
111100 dec
11110000000000
.
D
D
D
100011 1000110
11110
dec
1100100
11110000100011
11001000000
100001001100011=16995
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Décomposition simple
• Décomposition par paquets de 32 bits
• U et V sur n bits
• Coût unitaire (16 pour un mult 32, 1.6 pour add 32)
Décomposition en 32 bits
7000
6000
coût
5000
Coût Delta
Coût additionneur
Somme des Coûts
Registre
4000
3000
2000
1000
0
0
100
200
300
n
400
500
600
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Méthode de Karatsuba
Mais le produit de U par V peut s’écrire d’une autre façon (la
méthode de Karatsuba).
UV=(22n+2n)U1V1+2n(U1-U0)(V0-V1)+(2n+1)U1V0
- Se ramener à plusieurs multiplications sur 16 ou 32 bits
- Principe : 3 multiplications sur n/2 bits (au lieu de 4)
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Méthode de Karatsuba
Soit le produit 103*165 avec une décomposition en un seul
niveau.
U1
U0
1
U= 0110 0111
1
U1
1
U0
V1
0
U1
0
U0
1
0
1
1
V1 U0
x
1
V0
1
U1
-
x
0
V1 V0 V1 V0
1
1
V0 U0
+
V0
V= 1010 0101
1
1
U1
V1
x
+
S=U1*V1
Produit de U1 x V1
D
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Méthode de Karatsuba
•Décomposition par paquets de 32 bits
•U et V sur n bits
•Coût unitaire (16 pour un mult 32, 1.6 pour add 32)
Décomposition en 32 bits
2500
2000
Coût Delta
Coût additionneur
Somme des Coûts
Registre
coût
1500
1000
500
0
0
100
200
300
n
400
500
600
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Comparaison décomposition simple & Méthode de Karatsuba
Comparaison des deux méthodes pour une décomposition en 32 bits
7000
6000
5000
4000
coût
Somme des Coûts (Karatsuba)
Somme des Coûts(Méthode simple)
3000
2000
1000
0
0
100
200
300
n
400
500
600
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Oui mais … que faire du modulo ! Rappel : C= Xe mod n
• Faire une division pour calculer le reste ! (Bon courage !)
• Utilisation de l’algorithme de Montgomery
Theorem :
U + (U .N ' modR) M
º UR - 1 modM
R
R, N: entiers tel que GCD(R,M)=1
Si R est choisi tel que R=2n
N’= -M -1 mod R
Diviser par R est équivalent à décaler à droite de N bits
Réduire R ( mod R) est équivalent à prendre les n premiers bits
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Algorithme de Montgomery
Soit U=A.B
U-1 = 0
for i=0 to n-1
U = Ui-1 + Ai.B
q = u0.N0’mod 2
U = (U +q.M) >> 1
Endfor
If Un > M then U = Un – M
else U = Un
U + (U .N ' modR) M
º UR - 1 modM
R
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Algorithme de Montgomery
Soit U=A.B
U-1 = 0
for i=0 to n-1
U = Ui-1 + Ai.B
q = u0.N0’mod 2
U = (U +q.M) >> 1
Endfor
If Un > M then U = Un – M
else U = Un
U + (U .N ' modR) M
º UR - 1 modM
R
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Algorithme de Montgomery
Soit U=A.B
U-1 = 0
for i=0 to n-1
U = Ui-1 + Ai.B
q = u0.N0’mod 2
U = (U +q.M) >> 1
Endfor
If Un > M then U = Un – M
else U = Un
U + (U .N ' modR) M
º UR - 1 modM
R
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Algorithme de Montgomery
Soit U=A.B
U-1 = 0
for i=0 to n-1
U = Ui-1 + Ai.B
q = u0.N0’mod 2
U = (U +q.M) >> 1
Endfor
If Un > M then U = Un – M
else U = Un
U + (U .N ' modR) M
º UR - 1 modM
R
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Algorithme de Montgomery
Soit U=A.B
U-1 = 0
for i=0 to n-1
U = Ui-1 + Ai.B
q = u0.N0’mod 2
U = (U +q.M) >> 1
Endfor
If Un > M then U = Un – M
else U = Un
U + (U .N ' modR) M
º UR - 1 modM
R
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Algorithme de Montgomery
Soit U=A.B
U-1 = 0
for i=0 to n-1
U = Ui-1 + Ai.B
q = u0.N0’mod 2
U = (U +q.M) >> 1
Endfor
If Un > M then U = Un – M
else U = Un
Algorithm Montgomery(A , B , M)
int U 0;
1: for i = 0 to n-1
2: qi
(u0 + ai*b0) mod 2;
3: U (U+ ai*B + qi*M) div 2;
end.
4 : end for ;
5: if (U > M) then
6:
U ß U – M;
7 : return U;
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
A=510=01012 B=1210=11002
M=1710=100012
Algorithm Montgomery(A , B , M)
int U 0;
1: for i = 0 to n-1
2: qi
(u0 + ai*b0) mod 2;
3: U (U+ ai*B + qi*M) div 2;
end.
4 : end for ;
5: if (U > M) then
6:
U ß U – M;
7 : return U;
i=0 ai=‘1’ q=‘0’ U=6
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
A=510=01012 B=1210=11002
M=1710=100012
Algorithm Montgomery(A , B , M)
int U 0;
1: for i = 0 to n-1
2: qi
(u0 + ai*b0) mod 2;
3: U (U+ ai*B + qi*M) div 2;
end.
4 : end for ;
5: if (U > M) then
6:
U ß U – M;
7 : return U;
i=1 ai=‘0’ q=‘0’ U=3
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
A=510=01012 B=1210=11002
M=1710=100012
Algorithm Montgomery(A , B , M)
int U 0;
1: for i = 0 to n-1
2: qi
(u0 + ai*b0) mod 2;
3: U (U+ ai*B + qi*M) div 2;
end.
4 : end for ;
5: if (U > M) then
6:
U ß U – M;
7 : return U;
i=2 ai=‘1’ q=‘1’ U=16
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
A=510=01012 B=1210=11002
M=1710=100012
Algorithm Montgomery(A , B , M)
int U 0;
1: for i = 0 to n-1
2: qi
(u0 + ai*b0) mod 2;
3: U (U+ ai*B + qi*M) div 2;
end.
4 : end for ;
5: if (U > M) then
6:
U ß U – M;
7 : return U;
i=3 ai=‘0’ q=‘0’ U=8
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
A=510=01012 B=1210=11002
M=1710=100012
Algorithm Montgomery(A , B , M)
int U 0;
1: for i = 0 to n-1
2: qi
(u0 + ai*b0) mod 2;
3: U (U+ ai*B + qi*M) div 2;
end.
4 : end for ;
5: if (U > M) then
6:
U ß U – M;
7 : return U;
AxBxR-1mod M = 4
i=4 ai=‘0’ q=‘0’ U=4
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Algorithme de Montgomery, optimisation
• Soit U=A.B à si B=A à U=A2
• Même raisonnement U=An
Exemple pour supprimer la valeur R-1
Méthode 1 : multiplacation au préalable par R mod M,
puis 2ème passage
1er Passage
0 : Mont (A´(R mod M),B´(R mod M),M)
…
(a)
8 :end.
2ème Passage
0 : Mont (U, 1,M)
…
8 :end.
Méthode 2 : lors du 2ème passage, opérande = R2 mod M
1er Passage
0 : Mont (A,B,M)
…
8 :end.
(b)
2
Passage
0 : Mont (U, R2 mod M, M)
…
8 :end.
ème
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
• Exemple d’implantation (implantation « systolique »)
int U ß 0;
1: for i = 0 to n-1
2: qi ß (u0 + ai*b0) mod 2;
3: U ß (U+ ai*B + qi*M) div 2;
ai qi
U+ ai*B + qi*M
1
1
0
0
U+M+B
U+B
U+M
U
1
0
1
0
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Exemple d’implantation (implantation « systolique »)
Cellule de base
0
Cell0,i
bi
mi
q0
a0
mbi
0
q0
a0
0
bi
mi
mbi ri
Cell0,0
b 0 m0
mb0
q0
a0
a0
0
b 0 m0
mb0
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Exemple d’implantation (implantation « systolique »)
Cellule de base
ri-1
0
Celli,i
bi
mi
qi
ai
mbi
0
qi
ai
carryout
Add
0
bi
mi
carryin
mbi ui
Celli,0
mb0 ui-1 m0 b0
ai
qi
ai
carryout
Add
0
b 0 m0
mb0 ui
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Exemple d’implantation (implantation « systolique »)
mbn bn mn 0
Archi globale
Cell0,n
mbn
bn mn
0
mbi bi mi 0
mb1 b1 m1 0
mb0 b0 m0 0
a0
a0
a0
q0
u0,n
u0,n-1
mbi
Cell0,i
bi
mi
0
q0
ur0,i
u0,2
a1
carry
mbn
Cell1,n
bn mn
0
carry
q1
u1,n
Cell1,i
bi
mi
0
mbn
Celli,n
bn mn
0
carry
qi
ui,n
Celli,i
bi
mi
0
an
Celln,n
U(n+1)
U(n)
carry
qn
b1 m1
0
mb0
Cell1,1
mb1
b1 m1
carry
q1
0
U(i)
0
u0,1
Cell1,0
mb0
qi
b0 m0
a1
0
ui-1,1
ai
Celli,1
carry
qi
Celli,0
ai
ui,1
ri,2
mb1
b1 m1
0
an
Celln,i
a0
u1,1
u1,2
carry
ui,i
b0 m0
a1
ai
ui,i+1
mbi
mb1
q1
ur1,i
Cell0,0
u0,1
carry
ai
carry
q0
a1
u1,i+1
mbi
Cell0,1
carry
qn
mb0
b0 m0
0
un-1,1
an
Celln,1
U(1)
carry
qn
Celln,0
U(0)
an
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Exemple d’implantation (implantation « systolique »)
Performances
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Algorithme de Montgomery, optimisation
• S’applique aussi bien au niveau bit qu’au niveau mot (paquet
de 16 ou 32 bits)
• Niveau bit (voir exemple précédent)
• Niveau mot : cad ai, bi, représentés sur k bits (pour 1024 bits k=32 si sur 32 bits)
0 : Mont (A,B,M)
1 : int U ß 0 ;
2 : for i ß 0 to k do
3 : q ß (ai ´ b0 + r0) ´(- m0)-1 mod 2 ;
4 : c ß 0;
5 : for j ß 1 to k do
6:
uj-1 ß (uj + ai ´ bj + q ´ mj + c) mod 2 ;
7:
c ß (uj + ai ´ bj + q ´ mj + c) / 2 ;
8:
end for;
9:
uj ß c;
10 : end for;
11: return U;
12 :end.
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Représentation RNS (Residue Number Systems)
Représentation RNS
Conversion RNS à décimal:
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Utilisation du théoréme des « Résidues chinois »
• RNS à Opérations en parallèle
– ZßX+Y
– X=335
– Y=28
– β = 3,4,5,7
Pas de propagation de retenue
Z (10)= 363 = 335 + 28
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Utilisation du théoréme des « Résidues chinois » et Montgomery
[Bajard 2004]
1. Choix aléatoire des bases initiales
2. Changement aléatoire des bases pendant le calcul.
3. Problème extension des bases
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Utilisation du théoréme des « Résidues chinois » et Montgomery
[Bajard 2004]
Changement de
base en cours
de traitement
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Utilisation du théoréme des « Résidues chinois » et Montgomery
•
Extension de base (k=4)
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Utilisation du théoréme des « Résidues chinois » et Montgomery
• Vue d’ensemble de L’architecture
–
–
But: implanter de manière efficace la LRA
Composants du système
•
•
•
•
Contrôleur
Éléments de calcul (PEs) à gros grain
Réseau d’interconnexion
Ressources de mémoire
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Utilisation du théoréme des « Résidues chinois » et Montgomery
RNS
MRS
RNS
MRS
RNS
MRS
RNS
MRS
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Utilisation du théoréme des « Résidues chinois » et Montgomery
Temps de calcul pour une Exponentiantion Modulaire 1024 bits
0,084
0,09
0,08
0,07
0,05
0,043
0,037
0,04
0,033
0,020
0,015
0,03
0,015
0,02
Auteurs
Mesquita 33]
Deschamps
[32]
Daly [31]
Nedjah [30]
Örs [29]
0,00
McIvor [28]
0,01
Badrignans
[27]
Temps (s)
0,06
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : L’algorithme R.S.A, Rivest Shamir Adleman
Multiplication de grand nombre
• Utilisation du théorème des « Résidues chinois » et Montgomery
Taille des clés
1024
2048
4096
Représentation classique
5ms
420ms 3,350ms
Représentation RNS
35ms
139ms 560ms
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : Protocole de Diffie-Hellman
• Existe depuis 1976
• Permet l’échange de clefs sur un canal non sécurisé
• Basé sur RSA
• Soit p,g deux nombres premiers
Alice
Bob
p,g
p,g
Secret a
Secret b
A=ga mod p
B=gb mod p
K1=Ba mod p
p,g sont publics
a,b sont secrets
K c’est la clef
K2=Ab mod p
K1=Ba mod p = (gb mod p)a mod p =gab mod p
K2=Ab mod p = (ga mod p)b mod p = gab mod p
Donc K1=K2=K
Algorithmes & Architecture :
chiffrement asymétrique
q Exemple : Protocole de Diffie-Hellman
• Exemple, p=23, g=5, a=6, b=15
Alice
Bob
p,g
p,g
Secret a
Secret b
A=56
mod 23
K1=196 mod 23 = 2
p,g sont publics
a,b sont secrets
K c’est la clef
A=8
B=19
B=515 mod 23
K2=815 mod 23 = 2
Algorithmes & Architecture :
Fonction de Hachage
q Fonction de Hachage (Hash)
• Fonction qui associe à un grand ensemble de données un ensemble
beaucoup plus petit (de l'ordre de quelques centaines de bits) qui est
caractéristique de l'ensemble de départ
• résumé de message, condensé, condensat ou encore empreinte
cryptographique (digest) lorsque l'on utilise une fonction de hachage
cryptographique.
• Permet d’assurer l’authenticité des données, signature électronique
• H(x) ≠ H(y) implique x ≠ y et H(x) = H(y) implique x = y
Algorithmes & Architecture :
Fonction de Hachage
q Exemple : SHA-1, Secure Hash Algorithm
• Taille maximum du message 264
• Découpé en blocs de 512 bits (si pas un multiple à padding)
• Digest sur 160 bits (signature à la sortie)
• Algorithme sur 80 rondes
• Quatre fonctions booléennes sont définies
(Chaque fonction ft travaille sur 32 bits et génère 32 bits en sortie)
• Utilisation de 4 constantes
Algorithmes & Architecture :
Fonction de Hachage
q Exemple : SHA-1, Secure Hash Algorithm
• Le message complété est découpé en N blocs de 512 bits, notés
Chaque bloc de 512 bits est ensuite découpé en 16 mots de 32 bits,
notés
• Définition de 5 valeurs initiales
• Utilisation de 4 constantes
Algorithmes & Architecture :
Fonction de Hachage
q Exemple : SHA-1, Secure Hash Algorithm
• Fonction ROTL
Pour i= 1 to N {
• Création du Tableau de 80 mots (Wt) – Etape 1
Algorithmes & Architecture :
Fonction de Hachage
q Exemple : SHA-1, Secure Hash Algorithm
• Fonction ROTL
Pour i= 1 to N {
• Création du Tableau de 80 mots (Wt) – Etape 2
Algorithmes & Architecture :
Fonction de Hachage
q Exemple : SHA-1, Secure Hash Algorithm
• Initialisation des 5 variables a,b,c,d,e – Etape 2
• Calcul de a,b,c,d,e – Etape 3
Algorithmes & Architecture :
Fonction de Hachage
q Exemple : SHA-1, Secure Hash Algorithm
• Calcul des Hi – Etape 4
• } Fin de la boucle
• A la fin de la boucle le digest est donné par
Algorithmes & Architecture :
Fonction de Hachage
q Exemple : SHA-1, Secure Hash Algorithm
• Architecture simple en fait, mais 80 Cycles ….
Algorithmes & Architecture :
Fonction de Hachage
q Exemple : SHA-1, Secure Hash Algorithm
• Algo SHA, résumé
Conclusions & perspectives
q Cours introductif manque
q Courbes Elliptiques
q Authentification
q Chiffrement de Bus
q Protocoles sécurisés
qEtc ………
q Myriades d’algorithmes de cryptographie
q Compétences multiples : Math, Info, Microélectronique
q Environnement de plus en plus sécurisé
q Adéquation Algorithme – Architecture
q Pour en savoir plus :
- Site Wikipédia
- Sur les attaques : http://soc.eurecom.fr/crypto/
- Handbook of Applied cryptography http://www.cacr.math.uwaterloo.ca/hac/
- Association de Cryptographie : http://zenon.hd.free.fr/
- Divers liens http://perso.orange.fr/jean-paul.davalan/liens/liens_crypt.html
Téléchargement