• Aide
  • Eurêkoi Eurêkoi

Livre

Cryptographie par la pratique avec Python et OpenSSL : cours et applications concrètes

Résumé

Un cours complet sur les principaux algorithmes de cryptographie, des applications concrètes et des exercices d'entraînement. Les cas pratiques, exemples et exercices utilisent Python, Notebook, Jupyter avec les librairies de référence utilisées en contexte professionnel, ainsi qu'OpenSSL, une boîte à outils de chiffrement.


  • Contributeur(s)
  • Éditeur(s)
  • Date
    • DL 2024
  • Notes
    • La couv. porte en plus : "Les + en ligne"
    • La 4e de couv. indique : Le code source des exemples est disponible gratuitement en téléchargement à l'adresse suivante : https://dunod.com/EAN/9782100871339
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (VIII-213 p.) : ill., fig., graph. ; 24 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-10-087133-9
  • Indice
  • Quatrième de couverture
    • Cryptographie par la pratique avec Python et OpenSSL

      Cours et applications concrètes

      La pratique de la cryptographie demande des connaissances à la fois en mathématiques, en algorithmique et en programmation.

      Cet ouvrage propose donc aux étudiantes et aux étudiants :

      • un cours complet sur les principaux algorithmes de cryptographie symétrique (chiffrement par flot et de bloc), asymétriques (RSA et courbes elliptiques), signatures numériques, nombres aléatoires et hachage. Le tout en partant du contexte historique jusqu'à leur utilisation pratique en contexte professionnel et accompagné des notions mathématiques indispensables à leur compréhension ;
      • des applications pratiques et concrètes : protocoles HTTPS, SSH, LoRaWAN, Bitcoin, etc. ;
      • des exercices d'entraînement corrigés.

      Les cas pratiques, exemples et exercices utilisent Python, avec les librairies de référence utilisées en contexte professionnel, ainsi qu'OpenSSL, une boîte à outils de cryptographie dont l'utilisation est également répandue dans le monde professionnel.


  • Tables des matières
      • Cryptographie par la pratique avec Python et OpenSSL

      • Cours et applications concrètes

      • Rémi Boulle, Stéphane Bortzmeyer

      • Dunod

      • Préface1
      • 1 Enjeux et définitions3
      • 1.1 Pourquoi la cryptographie ?3
      • 1.2 Historique4
      • 1.2.1 PGP4
      • 1.2.2 Crypto Wars5
      • 1.2.3 Affaire Snowden6
      • PRISM6
      • XkeyScore6
      • Bullrun7
      • Conséquences7
      • 1.3 Vocabulaire de la cryptographie8
      • 2 Outils informatiques pour la cryptographie9
      • 2.1 Python pour la cryptographie9
      • 2.1.1 Listes9
      • Accéder et modifier des éléments10
      • Slicing de listes11
      • 2.1.2 Dictionnaires11
      • Création d'un dictionnaire11
      • 2.1.3 Tuple12
      • 2.1.4 Itérateurs et générateurs12
      • 2.1.5 Travailler en binaire13
      • Opérations bit à bit14
      • Rotation de bits14
      • Endianness 15
      • 2.1.6 Unicode16
      • 2.1.7 Congruences16
      • 2.1.8 Fonctions anonymes17
      • 2.1.9 filter, map et reduce17
      • 2.2 Représentations graphiques18
      • 2.2.1 matplotlib en 2D18
      • 2.2.2 matplotlib en 3D avec meshgrid19
      • 2.3 Autres bibliothèques20
      • 2.3.1 pack () et unpack ()20
      • 2.3.2 requests21
      • 2.3.3 JSON21
      • 2.3.4 cryptography22
      • 2.4 SSL/TLS23
      • 2.4.1 OpenSSL23
      • 3 Cryptographie classique25
      • 3.1 Congruences dans ℤ25
      • 3.1.1 Congruences25
      • 3.1.2 Opérations dans ℤ/n26
      • 3.2 César27
      • 3.3 Vigenère28
      • 3.4 Quel bilan ?29
      • 3.5 Exercices31
      • 3.5.1 Chiffrement de César31
      • 3.5.2 Attaques sur le chiffrement de César32
      • 3.5.3 Chiffrement de Vigenère33
      • 3.5.4 Attaque sur le chiffrement de Vigenère34
      • 4 Stéganographie37
      • 4.1 Contexte et historique37
      • 4.2 En ligne de commande38
      • 4.3 Stéganographie sur les fichiers38
      • 4.3.1 Whitespace Steganography38
      • 4.3.2 Stéganographie dans le binaire39
      • 4.4 Stéganographie sur les images39
      • 4.4.1 Stéganographie sur LSB40
      • 4.5 Exercices42
      • 4.5.1 Stéganographie sur les fichiers42
      • 4.5.2 Cacher une image dans une autre43
      • 4.5.3 Cacher du texte dans une image45
      • 5 Hachage47
      • 5.1 Fonction de hachage cryptographique47
      • 5.2 MD549
      • 5.2.1 Padding et extension49
      • 5.2.2 Vue générale50
      • 5.2.3 Fonction de compression52
      • Fonctions auxiliaires53
      • Table des constantes53
      • Décalages54
      • 5.2.4 Zoom sur une opération54
      • 5.2.5 Rondes suivantes54
      • 5.3 SHA-1 et SHA-256
      • 5.4 SHA-357
      • 5.4.1 Construction en éponge57
      • 5.5 Collisions58
      • 5.5.1 Paradoxe des anniversaires60
      • 5.6 Salage et stockage de mot de passes62
      • 5.7 HMAC et KM AC63
      • 5.8 Blockchain63
      • 5.8.1 Qu'est ce qu'un bloc Bitcoin ?64
      • En-tête de bloc Bitcoin66
      • Arbre de Merkle68
      • 5.8.2 Minage69
      • Preuve de travail70
      • 5.9 Exercices72
      • 5.9.1 Inversion de MD572
      • 5.9.2 Implémenter MD572
      • 5.9.3 Dérivation de clé avec PBKDF277
      • 5.9.4 Nombre maximum de bitcoins79
      • 5.9.5 Blockchain79
      • 5.9.6 Arbre de Merkle81
      • 5.9.7 Minage de bitcoins83
      • 6 Chiffrement symétrique87
      • 6.1 Chiffrement par flot87
      • 6.1.1 ChaCha2088
      • 6.1.2 Poly 130588
      • 6.1.3 ChaCha20-Poly 130589
      • 6.2 Modes de chiffrement89
      • 6.2.1 Padding89
      • 6.2.2 Mode ECB90
      • 6.2.3 Mode CBC91
      • 6.2.4 Mode CTR92
      • 6.2.5 Mode GCM93
      • Chiffrement94
      • Données authentifiées additionnelles94
      • Tag d'authenticité94
      • Déchiffrement et authentification95
      • Performances96
      • 6.3 Chiffrement de bloc : AES96
      • 6.3.1 Pré-requis mathématiques pour AES97
      • 6.3.2 Opérations usuelles dans GF (28)98
      • 6.3.3 S-box AES100
      • 6.3.4 Chiffrement101
      • 6.3.5 Déchiffrement102
      • 6.3.6 En Python et OpenSSL102
      • 6.4 AES en pratique : LoRaWAN103
      • 6.4.1 LoRaWAN104
      • 6.4.2 Clés de session104
      • 6.4.3 Analyse d'un paquet de données104
      • 6.4.4 Accès à la donnée106
      • 6.4.5 Chiffrement en LoRaWAN107
      • Un simple XOR ?107
      • Suite S108
      • 6.5 Cryptographie symétrique légère109
      • 6.6 Exercices110
      • 6.6.1 Division de polynômes110
      • 6.6.2 Mathématiques pour AES110
      • 6.6.3 Analyse d'un paquet LoRaWAN en Python112
      • 6.6.4 Cryptographie en LoRaWAN114
      • 6.6.5 OTP117
      • 6.6.6 AES en mode GCM avec données associées118
      • 7 Cryptographie asymétrique119
      • 7.1 Limitations de la cryptographie symétrique119
      • 7.2 Diffie-Hellman120
      • 7.2.1 Problème de la distribution des clés120
      • 7.2.2 Naissance d'Alice et Bob121
      • 7.2.3 Fonction à sens unique121
      • 7.2.4 Logarithme discret122
      • 7.2.5 Échange de Diffie-Hellman (DH)123
      • 7.2.6 Clés asymétriques124
      • 7.3 Signature numérique125
      • 8 RSA127
      • 8.1 Rappels d'arithmétique127
      • 8.1.1 PGCD127
      • 8.1.2 Algorithme d'Euclide128
      • 8.1.3 Égalité de Bézout129
      • 8.1.4 Algorithme de Blankinship130
      • 8.1.5 Inversion modulo p132
      • 8.2 Nombres premiers132
      • 8.2.1 Répartition des nombres premiers132
      • 8.2.2 Tests de primalité133
      • Test de Fermat134
      • Test de Miller-Rabin135
      • Avec sympy135
      • Fonction Python isprime ()136
      • 8.3 RSA138
      • 8.3.1 Création des clés139
      • 8.3.2 Choix de l'exposant de chiffrement RSA139
      • 8.3.3 Choix de p et q140
      • 8.3.4 Chiffrement et déchiffrement141
      • 8.3.5 Exponentiation modulaire rapide141
      • 8.4 Preuve de RSA142
      • 8.5 PKCS #1143
      • 8.5.1 Primitives du standard143
      • I2OSP et OS2IP143
      • Schéma de chiffrement RSAES-OAEP144
      • 8.6 Signature RSA145
      • 8.7 RSA en Python et OpenSSL145
      • 8.8 Exercices147
      • 8.8.1 Arithmétique pour RSA147
      • 8.8.2 Arithmétique avec Python151
      • 8.8.3 RSA avec Python151
      • 9 Cryptographie sur courbes elliptiques153
      • 9.1 Contexte153
      • 9.2 Courbe elliptique sur ℝ154
      • 9.2.1 Addition155
      • 9.2.2 Multiplication scalaire158
      • 9.3 Courbe elliptique modulo p158
      • 9.3.1 Représentation graphique159
      • 9.3.2 Opérations159
      • 9.4 Cryptographie sur courbes elliptiques160
      • 9.4.1 ECDLP160
      • 9.4.2 Choix des paramètres de la courbe160
      • 9.4.3 Exemples de courbes elliptiques161
      • 9.4.4 Échange de clés : ECDH163
      • 9.4.5 Signature : ECDSA164
      • 9.5 Courbes elliptiques en pratique165
      • 9.5.1 Avec OpenSSL165
      • 9.5.2 Bitcoin165
      • Adresses Bitcoin166
      • Courbe secp256k1167
      • 9.6 Exercices169
      • 9.6.1 Opérations sur courbes elliptiques169
      • 9.6.2 Courbe de l'ANSSI171
      • 9.6.3 Chiffrer, déchiffrer172
      • 9.6.4 Secp256kl173
      • 10 Nombres aléatoires175
      • 10.1 Introduction175
      • 10.1.1 PRNG et TRNG176
      • 10.2 PRNG congruentiels linéaires177
      • 10.2.1 Définition177
      • 10.2.2 Choix des paramètres178
      • 10.3 Mersenne Twister179
      • 10.3.1 Description180
      • Twisting 180
      • Tempering 182
      • 10.3.2 MT19937182
      • 10.3.3 Qualité et sécurité de MT184
      • 10.4 Qualité184
      • 10.4.1 Test du khi-deux185
      • 10.4.2 Test spectral187
      • 10.4.3 Test du birthday spacing189
      • 10.5 Générateurs cryptographiques190
      • 10.6 Exercices191
      • 10.6.1 GCL191
      • 10.6.2 Test spectral193
      • 10.6.3 Mersenne Twister194
      • 11 HTTPS et SSH197
      • 11.1 HTTPS197
      • 11.1.1 Contexte et historique198
      • EFF198
      • Google et Wikipédia pour HTTPS198
      • Let's encrypt 199
      • 11.1.2 TLS 1.3199
      • Client Hello 200
      • Server Hello 201
      • Calcul de la clé du Handshake202
      • Encrypted Extensions 202
      • Certificat202
      • Fin du Handshake203
      • 11.2 SSH204
      • 11.2.1 Origines204
      • 11.2.2 Protocole SSH205
      • 11.2.3 Clés SSH206
      • 11.2.4 Connexion SSH aux rayons X206
      • Bibliographie210
      • Index214

  • Origine de la notice:
    • Electre
  • Disponible - 681.40 BOU

    Etage 3 - Informatique - Informatique