“Anyone can invent an encryption algorithm they themselves can’t break; it’s much harder to invent one that no one else can break”.
Bruce Schneier
Ce ne sont pas de nouveaux sujets, mais si vous lisez ceci, vous pourriez peut-être l’utiliser pour un rapide rappel (ou comme introduction si vous n’êtes pas familier avec les concepts). Nous examinons les différences entre les cryptographies symétrique et asymétrique.
The operations
Les opérations elles-mêmes peuvent être :
Signer
Encrypter
Signer
Création de contenu supplémentaire - appelé signature - basé sur un message
cela prouve que son auteur avait accès à une clé spécifique.
Une certaine signature pour un certain contenu ne peut être produite qu’avec une certaine
clé, et cela doit être vérifiable.
La signature doit être fournie avec le message, les deux parties sont nécessaires
pour vérifier la provenance.
Signer un message n’empêche personne d’autre de le lire, cela empêche seulement
quelqu’un n’ayant pas accès à la clé de falsifier ou de falsifier le message.
La taille d’une signature ne doit pas varier avec la taille du message.
Il n’est pas possible d’obtenir le message à partir d’une signature.
Encrypter
Modifier un message afin qu’il devienne illisible pour quiconque n’ayant pas accès
à une clé spécifique.
L’envoi d’un message crypté peut empêcher les personnes n’ayant pas accès a la clef de décryptage
de le lire, mais cela n’empêche pas la falsification ou la falsification des messages.
Symmetrical
Symmetrical means there’s a shared key.
It means the same key used to encrypt is used to decrypt, and it means
that the same key used to produce a signature is also the key necessary to
verify the signature.
Symmetrical encryption
Le chiffrement symétrique existe depuis longtemps. Cela peut être aussi
simple que de décaler les lettres/chiffres d’un nombre déterminé par la touche.
Au lieu de “signature”, le terme MAC (Message Authentication Code) est plus
fréquemment utilisé. MAC est fréquemment utilisé pour décrire à la fois la signature
ainsi que l’algorithme qui l’a produit.
La plupart des algorithmes MAC sont basés sur des fonctions de hachage, et les plus courants
la façon dont ils fonctionnent consiste à produire un hachage du contenu mélangé à la clé.
Si la fonction de hachage est bonne, il ne sera pas possible de falsifier ou de falsifier
un message et produire le MAC correct sans la clé.
Un algorithme MAC peut être aussi simple que d’utiliser un bon
fonction de hachage, et l’appliquer au contenu mélangé avec la clé.
Asymétrique signifie que chaque partie a deux clés, une publique et une privée.
Une clé publique peut être dérivée de la clé privée, mais l’opération inverse n’est pas possible.
Les opérations asymétriques sont beaucoup plus lentes que les opérations symétriques.
Alors pourquoi et quand les utiliser ?
Les opérations symétriques nécessitent une clé commune pour les deux parties
Les deux clés doivent être utilisées dans une transaction :
Alice signe un document avec sa clé privée et n’importe qui peut vérifier qu’elle
a fait en utilisant sa clé publique.
Pour envoyer un message secret à Alice, on le chiffre avec la clé publique d’Alice,
seule sa clé privée est capable de le déchiffrer.
Notice the different key uses:
Public key
Encrypting
Verifying signatures
Private key
Decrypting
Signing
Encryption Asymmetrique
Le chiffrement asymétrique est très récent, le premier algorithme pratique,
RSA, a été publié en 1977.
$ cat message
HELLO THERE
$ gpg --encrypt --armor --recipient soarez@keybase.io < message > encrypted
$ cat encrypted
-----BEGIN PGP MESSAGE-----
Version: GnuPG/MacGPG2 v2.0.22 (Darwin)Comment: GPGTools - https://gpgtools.org
hQEMA7AQgA7KfpdAAQf8CWm1F0P+nd3xChVGMfWUKlIL2nBQsEHSv4wrMJatQmqE
8PWkX+X1T7wBlR2aILItCPH7M+N0m+1ePDK/2wkyxtQKnIXVSGk+v0LJDxf6PoZD
3mhMj9ntCGL+orWKlonvRgMepxEmFbNd1JLaX30LAkmjr+fYPcpseIAKjDVgB+JX
qXxrQvOxwzWdbewq0/LO/tTJL9FUn9g30ja8GCf5QDL+rc6ksFPWlzbDItVRSHqT
SyaL5HGiRyONH9KW3Exv+0vVZ+R2oLqzU4/WMYjuFJ7Eqv7wz0p7vxceT57VOPIF
NrzEXQ/Ci7BhyWkuWJo6wBdBwIta9PyyPJY73taEBtJHAb9mJcR0aFPgex4HfrRM
GSuTBOJVGyEFFcUwUjP3yY2Ck7WbTsLQkfZh4t+zP3Lw31oXLqpP5BaSMJ2tYnZG
fS2sEK1lldQ==/xtk
-----END PGP MESSAGE-----
$ gpg --decrypt
You need a passphrase to unlock the secret key foruser: "Igor Soarez <soarez@keybase.io>"2048-bit RSA key, ID CA7E9740, created 2014-03-26 (main key ID 1C1987ED)gpg: encrypted with 2048-bit RSA key, ID CA7E9740, created 2014-03-26
"Igor Soarez <soarez@keybase.io>" HELLO THERE
Notez que nous devions spécifier le destinataire, cela identifie quel
clé publique à utiliser dans le processus de chiffrement.
Si vous voulez essayer GPG, jetez un coup d’œil au GPG setup guide.
Signature Asymmetrique
L’auteur calcule un hachage du message et le déchiffre avec sa propre Clé privée. C’est bien, déchiffre. Ensuite, quelqu’un d’autre peut le crypter pour en obtenir
le hachage et vérifiez que le hachage est correct.
L’astuce est que les opérations de chiffrement et de déchiffrement sont utilisés d’une manière différente de celle pour laquelle ils ont été conçus.
Seul le propriétaire de la clé privée aurait pu produire quelque chose qui, une fois chiffrée avec la clé publique correspondante se transforme en un résultat spécifique.
Alors que la cryptographie symétrique est suffisante pour une utilisation au sein d’un groupe fermé, par ex. un ensemble de micro-services réalisés par la même équipe, la crypto asymétrique est nécessaire pour traiter avec de nombreuses parties qui ne se font pas confiance mutuellement et pour maintenir une relation basée sur une clef commune
avec chaque partie devient problématique.
Using GPG
$ gpg --sign --clearsign < message
$ cat message
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
HELLO THERE
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.22 (Darwin)Comment: GPGTools - https://gpgtools.org
iQEcBAEBCgAGBQJVbYNxAAoJEOkvWAkcGYftoacH/2uj531SNKbMwlqyFk2PfsQm
Tsee7x5NKYPNXj8IvcQCQWHsJHXZS5kV9tNMgwontFAUegfbi0JZsEH3JA25RRLG
qqcNYHsvDFTobuTaD+qEnwq4/QT0fHtssHoyHjKJrqQgt4UsIITFAhwALh82OyfJ
oTty94v7fjC+CTqtLAenD7oQMvAklL4epBLpozrSwBA2u7LPnfzMG8x6Oeyl5KjQ
x4K7bVgkfffcNbCgztUUNTUGiH73zBKWFwI+dzLmIrEQjncWsSTf/JxG3R1A7SDS
pv/gw4yCauv1pymeQB5gCecIrUyfHOX/CTrBTjyoPL642XwmoULWWBlwNJhTR9o==oCct
-----END PGP SIGNATURE-----
$ gpg --verify signed
gpg --verify signed
gpg: Signature made Tue Jun 2 11:20:33 2015 BST using RSA key ID 1C1987ED
gpg: Good signature from "Igor Soarez <soarez@keybase.io>"
Si vous voulez essayer GPG, jetez un coup d’œil au GPG setup guide.
Note finale
J’espère que cette très courte introduction vous a été utile. Si vous voulez en savoir plus,
Je recommande de regarder une introduction beaucoup plus complète à la cryptographie
— Journey into Cryptography par KhanAcademy.