Sécurité 2 : Cryptographie Symétrique
Summary
TLDRDans cette vidéo, nous explorons les techniques modernes de chiffrement symétrique, où une même clé sert à chiffrer et déchiffrer. Nous découvrons le chiffrement Vernam, similaire au Vigenère mais en binaire, utilisant l'opération XOR. Les clés doivent être de la même longueur que le message et ne pas être réutilisées. Nous passons en revue les algorithmes DES et AES, qui utilisent des blocs de données et des clés de tailles différentes. Nous abordons également les modes d'opération des blocs, comme ECB et CBC, et les chiffrements par flux, tels que RC4 et A5. Enfin, nous soulignons les limitations du chiffrement symétrique et l'importance de passer au chiffrement asymétrique pour des communications sécurisées.
Takeaways
- 🔐 La cryptographie symétrique utilise la même clé pour le chiffrement et le déchiffrement.
- 📚 Il est essentiel de comprendre le système binaire pour comprendre les techniques modernes de chiffrement symétrique.
- 🔄 Le chiffrement Vernam est similaire au chiffrement Vigenère, mais en binaire et utilise une clé de même longueur que le message.
- 🔧 L'opération de déplacement de bits selon la clé est appelée 'XOR' (ou 'ou exclusif' en français).
- 🔒 Le chiffrement Vernam est considéré comme 'parfait', car sans la clé, on ne peut rien déduire du texte chiffré.
- 🔑 Pour que le chiffrement Vernam soit parfait, la clé doit être de même longueur que le message et ne doit pas être réutilisée.
- 💾 Les techniques modernes utilisent des clés plus courtes que les messages et réutilisent la clé plusieurs fois.
- 🗝️ DES (Data Encryption Standard) est un algorithme de chiffrement symétrique conçu en 1977 par IBM, mais est désormais considéré comme peu sécurisé.
- 🔐 AES (Advanced Encryption Standard) est un algorithme de chiffrement symétrique plus sécurisé, conçu en 2001 par NIST.
- 🔗 Les modes d'opération des algorithmes de chiffrement déterminent comment les blocs chiffrés sont combinés, avec ECB et CBC étant les modes les plus connus.
- 📶 Les chiffrements par flux (stream ciphers) sont utilisés lorsque la taille du texte chiffré n'est pas connue à l'avance, en utilisant un nonce pour générer des clés de chiffrement successives.
Q & A
Quels sont les deux techniques de chiffrement symétrique vus dans la vidéo précédente?
-Dans la vidéo précédente, on a vu deux techniques de chiffrement symétrique anciennes, qui sont des méthodes où on utilise la même clé pour chiffrer et déchiffrer.
Pourquoi est-il important de comprendre le système binaire pour comprendre ce qui est expliqué dans cette vidéo?
-Il est important de comprendre le système binaire car l'information échangée est constituée de 0 et de 1, et non de lettres de l'alphabet.
Quel est le nom du chiffrement similaire au Vigenère mais en binaire?
-Le chiffrement similaire au Vigenère mais en binaire est appelé le chiffrement de Vernam.
Comment fonctionne le chiffrement de Vernam?
-Le chiffrement de Vernam consiste à choisir une clé de même longueur que le message, à la placer sous le message et à décaler chaque bit du nombre de positions indiqué par la clé.
Quel est l'opération utilisée pour le chiffrement dans le chiffrement de Vernam?
-L'opération utilisée pour le chiffrement dans le chiffrement de Vernam est l'opération 'exclusive or' ou 'xor'.
Quelle est la condition pour que le chiffrement de Vernam soit considéré comme 'parfait'?
-Le chiffrement de Vernam est considéré comme 'parfait' si la clé est de même longueur que le message et qu'elle n'est pas utilisée une seconde fois.
Pourquoi est-ce que le chiffrement de Vernam est théorique et non pratique?
-Le chiffrement de Vernam est théorique et non pratique car il nécessite d'échanger une clé de même longueur que le message de manière secrète entre les deux participants, ce qui rend le processus inutilisable en pratique.
Quels sont les deux types de techniques de chiffrement en bloc mentionnés dans la vidéo?
-Les deux types de techniques de chiffrement en bloc mentionnés sont les chiffrements par blocs et les chiffrements par flux.
Quel est le chiffrement qui utilise une technique appelée schéma de Feistel et divise chaque bloc de message en 64 bits?
-Le chiffrement qui utilise une technique appelée schéma de Feistel et divise chaque bloc de message en 64 bits est le DES (Data Encryption Standard).
Quel est le chiffrement recommandé pour remplacer le DES en raison de sa vulnérabilité?
-Le chiffrement recommandé pour remplacer le DES en raison de sa vulnérabilité est le AES (Advanced Encryption Standard).
Quels sont les modes d'opération pour combiner les blocs chiffrés?
-Les modes d'opération pour combiner les blocs chiffrés incluent ECB (Electronic Codebook) et CBC (Cipher Block Chaining).
Outlines
🔐 Introduction aux techniques modernes de chiffrement symétrique
Le paragraphe 1 présente les techniques modernes de chiffrement symétrique, qui utilisent la même clé pour chiffrer et déchiffrer. Il explique que pour comprendre ces techniques, il est nécessaire de comprendre le système binaire. Le script mentionne un chiffrement similaire au Vigenère mais en binaire, appelé le chiffrement Vernam. Ce chiffrement utilise une clé de même longueur que le message, et chaque bit est décalé selon la valeur de la clé correspondante. Le décalage est effectué par un opération appelée 'exclusive or' (XOR), qui est aussi utilisée pour le déchiffrement. Le script souligne que le chiffrement Vernam est 'parfait', mais théorique, car il nécessite une nouvelle clé de même longueur pour chaque message à chiffrer. De plus, le script mentionne les deux catégories de techniques de chiffrement symétrique modernes : les blocs de chiffrement et les flux de chiffrement.
💡 Détails sur les clés et les algorithmes de chiffrement symétrique
Le paragraphe 2 discute des clés dans le contexte du chiffrement symétrique, en particulier la différence entre les clés possibles avec le chiffrement Vigenère et les clés modernes. Il explique que les clés de 64 bits offrent un nombre énorme de combinaisons, ce qui rend le chiffrement difficile à casser même avec un ordinateur moderne. Le script mentionne le DES (Data Encryption Standard), un algorithme de chiffrement symétrique conçu en 1977, qui utilise une clé de 64 bits mais en réalité n'utilise que 56 bits. Il est désormais considéré comme vulnérable et peut être cassé en 26 heures. En contraste, l'AES (Advanced Encryption Standard), conçu en 2001, utilise des blocs de 128 bits et des clés de 128, 192 ou 256 bits, offrant un nombre de combinaisons de clés si grand que même avec des milliards de supercalculateurs, le temps de déchiffrement serait plus long que l'âge de l'univers. Le paragraphe aborde également les modes d'opération des chiffrements de bloc, en particulier ECB et CBC, et souligne les problèmes de sécurité avec le mode ECB.
📵 Problèmes avec le chiffrement symétrique et l'introduction du chiffrement asymétrique
Le paragraphe 3 traite des problèmes associés au chiffrement symétrique, où les deux parties doivent échanger la clé secrètement avant de commencer la communication. Il mentionne les méthodes utilisées pendant la guerre froide pour échanger des clés symétriques. Le script explique que ces méthodes ne sont plus pratiques dans le monde moderne, où la communication est souvent instantanée et ne nécessite pas de rencontre physique. Il mentionne également le chiffrement de flux A5 utilisé par le GSM, qui est considéré comme faible en raison des attaques découvertes contre cet algorithme. Le paragraphe conclut en disant que le chiffrement symétrique n'est pas suffisant et que le prochain vidéo parlera du chiffrement asymétrique, qui résout le problème de l'échange de clés.
Mindmap
Keywords
💡Cryptographie symétrique
💡Système binaire
💡Chiffre de Vernam
💡XOR
💡DES
💡AES
💡Bloc de chiffrement
💡Chiffrement par flot
💡Mode de chiffrement ECB
💡Mode de chiffrement CBC
Highlights
Introduction to modern techniques for symmetric encryption
Necessity of understanding the binary system for modern encryption techniques
Binary representation of information in encryption
Introduction to the Vernam cipher, a binary version of the Vigenere cipher
Explanation of the Vernam cipher's encryption process using bit shifting
The exclusive or (xor) operation as the core of the Vernam cipher
Decryption process of the Vernam cipher using the xor operation
The theoretical 'perfect' nature of the Vernam cipher
Practical limitations of the Vernam cipher due to key exchange requirements
Introduction to block ciphers and stream ciphers
Description of DES, an early block cipher with a 56-bit key
The vulnerability of DES to modern computing power
Introduction to AES, a more secure block cipher with larger key sizes
Comparison of key sizes and security between DES and AES
Explanation of different modes of operations for block ciphers
Drawbacks of ECB mode and its susceptibility to pattern analysis
Advantages of CBC mode for encrypting blocks in a chain
Introduction to stream ciphers and their use with a nonce
Critique of RC4 as an insecure stream cipher
Discussion on the impracticality of symmetric key exchange in modern communication
Anticipation of the next video on asymmetric encryption
Transcripts
Hi everyone! In the last video, we have seen
2 techniques of ancient cryptography of symmetric encryption
meaning that we use the same key to encrypt and decrypt.
In this video, we will see the modern techniques for symmetric encryption
If you want to understand what will be explained in this video,
you absolutely need to understand the binary system.
If this is not the case, you can watch my video "binary representations"
in which I explain what is the binary system, how we can use it
to represent text, images, videos, etc
So the information that both people
exchange is constituted of 0s and 1s.
and not of letters from a to z
We are now going to see an encryption technique quite similar to the Vigenere cipher
but in binary. It's called the Vernam cipher.
To encrypt, we choose a key k of the same length as m
We place it under m and shift each bit by the number of positions indicated
by the key. For example when we see a 0 in the plaintext
and a 0 in the key, we shift by 0 positions
so we let the 0 of m untouched.
If we see a 0 in m and a 1 in k, we shift by 1 position
So the 0 becomes a 1 in the ciphertext c
If we see a 1 in m and a 0 in k, we shift by 0 positions
so it stays a 1. If we see a 1 in m and k,
We shift by 1 position so the 1 becomes a 0.
Because it is a cyclic system with only 2 values.
So you can see that like with the Vigenere cipher,
We shift symbols by positions indicated by the key.
Except that here there are only 2 symbols 0 and 1
so there are only 4 possibilities of combinations of 0 and 1
This operation is also called the exclusive or (xor)
We will talk about it in more details in the hardware module,
basically when both values are the same,
the result is 0 and if both values
are different, then the result is 1.
This xor operation is defined for each bit between the message and the key.
But we can also define it for the whole message
meaning that the ciphertext is the result of the xor between
the message m and the key k.
meaning that we computed the xor on each bit of m with
each corresponding bit of the key.
and like other mathematical operations,
the xor also has a symbol, a + with a circle around it.
So we can note that according to the Vernam cipher
c = m xor k
To decrypt, we reuse the key on the ciphertext
We again to a xor but this time c xor k
Feel free to ask if this operation of xor is not clear,
because it's very important in cryptography
we will often use it.
we call this Vernam cipher "perfect" in a sense.
We can demonstrate that if we know only the ciphertext
and not the key, we can not deduce anything about the plaintext m
so we cannot do analysis on the symbols, etc
like we did in the previous video.
but for that thesis to hold, there are 2 conditions :
k must be the same length of m.
and k must not be used a second time.
So each time we want to encrypt a message m of length l
We must choose a new key of length l
So it renders the cipher useless since we must
exchange the key between the 2 participants
in advance and in secret
they might as well exchange m at that time.
So Vernam is perfect but theoretical.
Modern ciphers are not perfect,
but they use keys shorter than messages to encrypt
and reuse the key several times.
We divide these techniques in 2 categories :
Block ciphers split the ciphertext in chunks called blocks
Then we use the key to encrypt each block and then combine them.
On the other hand, stream ciphers
are used when we don't know in advance the size of the ciphertext
so we encrypt each bit individually
with a new key derived from the previous key.
Nowadays we have 2 main methods of block ciphers
I will dive into the details of each algorithm
maybe there will be a complement about them
The most important thing to know is their block and key sizes.
and whether or not we found attacks on these ciphers or not.
DES was designed in 1977 by IBM
and uses a technique called Feistel scheme
and divides every block of every message in 64 bits
and uses a key also of 64 bits
In the previous video we saw that Vigenere uses
a very large number of possible keys so that it is impossible
for a human to test every key.
But with a modern computer, to test 13 million keys, it will take about a minute.
So that's why modern techniques use a much larger number of possible keys
With a key of 64 bits, there are 2^64 possible keys.
about 16 billions of billions of keys to test.
Is that a lot for a computer? It depends
you know that modern computers
are already a lot more powerful than those designed 5 years ago.
In computer science, we have an informal law called the Moore law
which states that the power of computers
is almost doubled every year.
If we look at the capacity of processors since the 70s,
It's a confirmed prediction.
And if you have maybe 1 or 2 computers at home
Some organizations have thousands of computers in data centers
So they can divide the tasks between the computers
We said that DES uses a 64-bit key, but in reality
if we look at the implementation of the algorithm, only 56 bits are used.
8 bits out of 64 bits are unused.
Why? During the conception of the algorithm, the NSA
pressured IBM to use only 56 bits.
At the time, in the 70s, crack a 64-bit key is impossible
even for the NSA who has thousands of computers
But crack a 56-bit key, that they can do.
So with a 56-bit key we guarantee that common citizens cannot crack messages
But the NSA can still crack messages for spying purposes
But since the 70s, the capacity of computers has evolved
and the number of computers increased. Experts found attacks on DES
to crack keys without doing a brute force attack
So in 2012 was designed a system that can crack any DES key in
26 hours.
So DES is a very bad choice for a symmetric cipher.
Sadly it is still used in some places.
But most of the time, we use another : AES
AES was designed in 2001 by an american
institute called NIST
who launched a competition for researchers
across the world to propose solutions for symmetric encryption
2 belgium researchers won and designed AES.
AES uses blocks of 128 bits and keys of either 128, 192 or 256 bits
with a 256-bit key, there are 2^256 different possible keys
It's huge without any comparison. Even the number of atoms in the universe is much smaller
If you had billions of billions of supercomputers
who can each test a billion of billion of keys per second
The time to crack AES would still be much longer than the age of the universe.
Whether we use DES or AES,
there is a question : how to combine the blocks that were encrypted?
we call these combinations "operations mode"
The simplest method, ECB
consists of concatenate the blocks who are encrypted independently.
It has a problem : all same blocks are encrypted the same way
and produce the same encrypted blocks.
so with enough blocks, an attacker can make
an analysis and guess the plaintext.
We can take the example when the message is an image.
The same groups of pixels are replaced by the same encrypted pixels.
So even if the image is encrypted,
we can still see the drawing.
For this reason, we mostly use another operation mode : CBC
According to this mode, block are encrypted
in a chain, meaning that before
encrypting a block, we xor it with the encrypted previous block
This way the result of the encryption
of each block depends by transitivity on all previous blocks
Since the first block doesn't have a previous block, we use a special block
called the initialization vector
So we first xor m1 with IV
then encrypt with k to obtain c1
Then we xor c1 and m2 before encryption
and obtain c2 and so on
We now look at stream ciphers
In this category, we also use a symmetric key
and a random number called a nonce.
For this we can generate a new key
and then another one, etc
each key will be used to encrypt one or a small group of bits.
For a long time, we used a stream cipher called RC4
It was so bad that it is now forbidden.
To encrypt your SMS and calls, GSM
uses a stream cipher called A5.
It uses 64-bit key but is considered weak because
several attacks on this algorithm were found.
For all these symmetric techniques,
both parties need to exchange the key in advance and in secret
During the cold war, american and russian diplomats would carry
suitcases containing symmetric keys in the plane.
They exchanged them in the ambassades and then use them
in phone calls. The famous red phone.
But today that wouldn't be feasible.
Imagine that each time you want to go on facebook, to communicate with the server,
you would need to fly to a facebook office
and take an appointment to exchange a symmetric key.
So symmetric cryptography is not sufficient.
This is why in the next video, we will talk about asymmetric encryption.
See you soon!
Browse More Related Video
AES n'est pas (toujours) sécurisé.
Sécurité 1 : Introduction à la Cryptographie
COURS DE TERMINALE SPÉCIALITÉ SVT CHAP.5: LES MÉCANISMES NON GÉNÉTIQUES DE DIVERSIFICATION DU VIVANT
COMMENT LES PLANTES S’ADAPTENT- À LA SÉCHERESSE (rubrique Science Végétale N°1)
DU REJET AU SUCCÈS | 8 Stratégies de Marc Aurèle pour Convertir le REFUS à ton AVANTAGE | Stoïcisme
Kubernetes Security Best Practices you need to know | THE Guide for securing your K8s cluster!
5.0 / 5 (0 votes)