Files
TermNSI/Sécurité/Controle_TP.ipynb
2025-04-25 08:08:19 +02:00

1 line
6.3 KiB
Plaintext

{"cells":[{"metadata":{},"cell_type":"markdown","source":"# Exercice 1\nQuelqu'un a laissé trainer le mot Cesar. Quelle phrase se cache derriere le message chiffré ?\n```python\nmoncodage=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz '!?.,\"\nmessageChiffre=\",pYtm?ytmsqyYtcxyrpmstcyjcykcqqYecyaYafcy\"\n```"},{"metadata":{"trusted":false},"cell_type":"code","source":"\n\n","execution_count":1,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Exercice 2 : RSA codage en ASCII\nLa même personne a laissé trainer :\n\n```python\nmessagechiffre=[138856, 345157, 151132, 342779, 158558, 273532, 106749, 21276, 148728, 286735, 21276, 342779, 68425, 341353, 158558, 41948, 68425, 158558, 108463, 343191, 270263, 177724, 21276, 5130, 5130, 286735, 106749, 343761, 68425, 158558, 106749, 7365, 68425, 270263, 158558, 41948, 106749, 158558, 270263, 41948, 68425, 5130, 158558, 191938, 286735, 21276, 7365, 343191]#Allons Sortir Cet Ignoble Individu\nprive_d= 178509 \nprive_n= 371653\n```\nDéchiffrer le message."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Exercice 3\nEcrire une fonction python `est_premier(n)` qui renvoie `True` si n est premier sinon `False`."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Exercice 4\nEn supposant que `n` est le produit de deux facteurs premiers, ecrire une fonction python `facteurs_premiers(n)` qui renvoie les deux facteurs premiers de $n$.\n\nExemple:\n```python\n>>>facteurs_premiers(21)\n(3,7)\n````\n\nOn peut faire aussi une fonction qui fait la factorisation de n'importe quel nombre mais c'est légerement plus délicat."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"markdown","source":"# Exercice 5 : RSA\nOn peut utiliser la fonction inverse `pow(a,-1,b)` qui calcule l'inverse de a modulo b, c'est dire que:\n\n$c=pow(a,-1,b)$\n\n$(a\\times c)\\%b=1$ qui revient à écrire $ac\\equiv1[ b] $\n\nToujours la même personne a laissé trainer ceci. Qu'est ce qu'il y a derriére ? Utiliser les fonctions précédentes. \n\n\n\n"},{"metadata":{"trusted":false},"cell_type":"code","source":"moncodage=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz '!?.,\"\n\npublic_n=235457\npublic_c=37609\n\nmessage=[62662, 234626, 112577, 79727, 62719, 134774, 136453, 118370, 112577, 115473, \n 134774, 109541, 112577, 134774, 161332, 78105, 118370, 82493, 82493, 189309, \n 112577, 69370, 112577, 115473, 62719, 134774, 213184, 226376, 0, 134774, 75017, \n 146623, 118370, 134774, 167402, 134774, 112577, 62719, 112577,\n 134774, 146623, 62719, 118370, 109541, 118370, 79727, 112577, 134774, 32388]\n\n","execution_count":1,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Exercice 6 masque jetable\nChaque caractére est chiffré...\n\nQu'est ce ?"},{"metadata":{"trusted":false},"cell_type":"code","source":"moncodage=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz '!?.,\"\nK=60\nunAutreMessage=[52, 25, 8, 14, 8, 34, 27, 8, 38, 8, 22, 18, 30, 8, 27, 9, 20, 27, 17, 8, 21, 38, 16, \n 8, 32, 20, 26, 21, 23, 30, 16, 8, 22, 18, 9, 30, 25, 8, 27, 34, 8, 35, 38, 18, 17,\n 8, 23, 30, 34, 27, 8, 25, 38, 30, 16, 16, 34, 23, 8, 17, 23, 38, 30, 27, 34, 23, 4]\n","execution_count":3,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Exercice 7 un peu de hash à la fin\nUn exercice pour utiliser `globals()` et plus...A la fin, on peut utiliser le module `hashlib` et sa <a href='https://docs.python.org/fr/3/library/hashlib.html'>documentation.</a>\n\nExécuter la cellule suivante:\n"},{"metadata":{"trusted":false},"cell_type":"code","source":"from _fichierHack import *","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Exercice 8 masque jetable par bloc\nTout le bloc est chiffré. Remarquer que les indices des caractéres utilisés pour le codage ont toujours deux chiffres. Cela permet de décoder plus facilement."},{"metadata":{"trusted":false},"cell_type":"code","source":"moncodage=\"**********ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz '!?.,\"\nclef= 733595400815782721245603043191369967446003109779782783631545260787596885665\nmessageChiffre= 1505772478592636573599379115754628819762906978940699006254569112577627237769","execution_count":9,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"markdown","source":"# Exercice 9 : un peu d'obfuscation\n\nL'offuscation c'est le fait de cacher du code avec une méthode d'écriture du code de façon qu'il soit difficile de savoir ce que fait le code:\n\nVoici un exemple d'obfucation très basique, arriverez vous à connaitre le message caché ?"},{"metadata":{"trusted":false},"cell_type":"code","source":"message='∢ਢ潓癵湥ⱴ瀠畯⁲❳浡獵牥‬敬⁳潨浭獥搠攧畱灩条੥牐湥敮瑮搠獥愠扬瑡潲ⱳ瘠獡整⁳楯敳畡⁸敤⁳敭獲ਬ畑⁩畳癩湥ⱴ椠摮汯湥獴挠浯慰湧湯⁳敤瘠祯条ⱥ䰊⁥慮楶敲朠楬獳湡⁴畳⁲敬⁳潧晵牦獥愠敭獲ਮ∢•'\n\n","execution_count":8,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3","language":"python"}},"nbformat":4,"nbformat_minor":2}