{"id":26891953,"url":"https://github.com/luffy0xcyber/cryptographie_classique","last_synced_at":"2025-06-13T08:06:53.374Z","repository":{"id":263267161,"uuid":"889848198","full_name":"Luffy0xCyber/cryptographie_classique","owner":"Luffy0xCyber","description":"Implémentation Python des chiffrements historiques (César, Hill, Vigenère) avec explications détaillées et simples | Projet éducatif de cryptographie","archived":false,"fork":false,"pushed_at":"2025-02-06T12:27:07.000Z","size":25,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-31T22:48:20.616Z","etag":null,"topics":["cesar-cipher","cesar-cypher","ciphers","cryptography","cybersecurity","education","encryption","hill-cipher","learning-project","mathematics","python","security","vigenere-cipher"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Luffy0xCyber.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-17T11:59:12.000Z","updated_at":"2025-03-07T22:01:49.000Z","dependencies_parsed_at":"2024-11-18T01:55:29.938Z","dependency_job_id":null,"html_url":"https://github.com/Luffy0xCyber/cryptographie_classique","commit_stats":null,"previous_names":["luffy0xcyber/chiffrement","luffy0xcyber/cryptographie_classique"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Luffy0xCyber/cryptographie_classique","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luffy0xCyber%2Fcryptographie_classique","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luffy0xCyber%2Fcryptographie_classique/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luffy0xCyber%2Fcryptographie_classique/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luffy0xCyber%2Fcryptographie_classique/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Luffy0xCyber","download_url":"https://codeload.github.com/Luffy0xCyber/cryptographie_classique/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luffy0xCyber%2Fcryptographie_classique/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259606977,"owners_count":22883559,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cesar-cipher","cesar-cypher","ciphers","cryptography","cybersecurity","education","encryption","hill-cipher","learning-project","mathematics","python","security","vigenere-cipher"],"created_at":"2025-03-31T22:48:24.112Z","updated_at":"2025-06-13T08:06:53.346Z","avatar_url":"https://github.com/Luffy0xCyber.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# À la découverte des chiffrements historiques\n\n## Introduction\nSalut ! Je suis Anas E., étudiant en cybersécurité. Passionné par mon cours de mathématiques, j'ai voulu découvrir les fondements de la cryptographie en implémentant trois méthodes historiques de chiffrement (César, Hill et Vigenère). À travers ce projet, je partage le code \net les explications de ces algorithmes de manière simple. \n\n## Le chiffrement de César : la simplicité à l'état pur\n\nImaginez que vous voulez envoyer un message secret à un ami. Le chiffrement de César, c'est un peu comme avoir un code secret où vous décalez chaque lettre d'un certain nombre de positions dans l'alphabet. Par exemple, avec un décalage de 3, 'A' devient 'D', 'B' devient 'E', et ainsi de suite.\n\nPour les matheux curieux, voici comment ça fonctionne :\n- Pour chiffrer : on prend la position de la lettre, on ajoute la clé, et on fait le modulo 26\n- Pour déchiffrer : on fait l'inverse !\n\n\n## Le chiffrement de Hill : quand les maths s'en mêlent\n\nCréé par Lester S. Hill en 1929, ce chiffrement est plus sophistiqué. Au lieu de traiter les lettres une par une, il les prend par groupes et utilise des matrices pour les mélanger. C'est un peu comme si vous mélangiez les ingrédients d'une recette selon une formule mathématique précise !\n\nL'aspect cool ? Une même lettre peut donner différents résultats selon sa position dans le texte. C'est déjà plus difficile à décrypter que le chiffrement de César !\n\n## Le chiffrement de Vigenère : l'art du camouflage\n\nLe Vigenère, c'est comme un César sur-vitaminé. Au lieu d'utiliser toujours le même décalage, on utilise un mot-clé qui détermine des décalages différents pour chaque lettre. Par exemple, si votre mot-clé est \"CHAT\", chaque lettre sera décalée différemment selon qu'elle correspond au 'C', au 'H', au 'A' ou au 'T'.\n\nC'est beaucoup plus malin que le César car une même lettre dans votre message peut être chiffrée de plusieurs façons différentes. Cependant, il existe une technique appelée \"attaque de Kasiski\" qui peut percer ce code en cherchant des motifs qui se répètent.\n\n## En pratique\n\nJ'ai créé trois programmes Python pour tester tout ça :\n- ```cesar.py``` pour le chiffrement de César\n- ```hill.py``` pour le chiffrement de Hill\n- ```vigenere.py``` pour le chiffrement de Vigenère\n\nChaque programme est accompagné de ses tests (```cesar_test.py, hill_test.py, vigenere_test.py```) pour s'assurer que tout fonctionne correctement.\n\n## Pour conclure\n\nCes méthodes de chiffrement, bien qu'obsolètes aujourd'hui, sont fascinantes car elles nous montrent l'évolution des techniques de cryptographie. C'est un excellent moyen de comprendre les bases avant de plonger dans les méthodes modernes plus complexes. Et qui sait ? Peut-être que ça vous donnera envie d'explorer davantage ce domaine passionnant !","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluffy0xcyber%2Fcryptographie_classique","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluffy0xcyber%2Fcryptographie_classique","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluffy0xcyber%2Fcryptographie_classique/lists"}