{"id":338,"date":"2018-08-19T15:45:33","date_gmt":"2018-08-19T13:45:33","guid":{"rendered":"https:\/\/www.mathweb.fr\/euclide\/?p=338"},"modified":"2021-02-04T17:11:11","modified_gmt":"2021-02-04T16:11:11","slug":"chiffrement-affine-en-python","status":"publish","type":"post","link":"https:\/\/www.mathweb.fr\/euclide\/2018\/08\/19\/chiffrement-affine-en-python\/","title":{"rendered":"Chiffrement affine en Python"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Le chiffrement affine est une m\u00e9thode de chiffrement bas\u00e9e sur les fonctions affines&#8230; Mouais !<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En d&rsquo;autres termes, si <em>x<\/em>&nbsp;est le code d&rsquo;une lettre sur un alphabet d\u00e9termin\u00e9 alors cette derni\u00e8re sera transform\u00e9e en une autre lettre dont le code est \u00e9gal \u00e0&nbsp;<em>ax+b<\/em> mod&nbsp;<em>n<\/em> (o\u00f9&nbsp;<em>n<\/em> est&nbsp;le nombre de caract\u00e8res de l&rsquo;alphabet choisi et o\u00f9&nbsp;<em>a<\/em> et&nbsp;<em>b<\/em> sont deux entiers strictement inf\u00e9rieurs \u00e0&nbsp;<em>n<\/em><em>).<\/em><\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">Par exemple, si on consid\u00e8re l&rsquo;alphabet \u00ab\u00a0ABCDEFGHIJKLMNOPQRSTUVWXYZ\u00a0\u00bb et si on d\u00e9cide d&rsquo;attribuer le nombre 0 \u00e0 \u00ab\u00a0A\u00a0\u00bb, 1 \u00e0 \u00ab\u00a0B\u00a0\u00bb, &#8230; , 25 \u00e0 \u00ab\u00a0Z\u00a0\u00bb, en prenant le chiffrement bas\u00e9 sur les nombres&nbsp;<em>a<\/em> = 3 et&nbsp;<em>b<\/em> = 7, la lettre \u00ab\u00a0M\u00a0\u00bb (dont le code est 12) est transform\u00e9e en la lettre dont le code est \\(y\\equiv3\\times12+7\\mod26\\) soit \\(y\\equiv43\\mod26\\), donc en la lettre dont le code est&nbsp;<em>y<\/em> = 17, c&rsquo;est-\u00e0-dire en la lettre \u00ab\u00a0R\u00a0\u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour automatiser le chiffrement d&rsquo;un mot, il est alors pratique d&rsquo;utiliser un programme.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voici un exemple de programme Python qui permet de chiffrer et d\u00e9chiffrer un message :<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Calcul du pgcd de a et b\n\ndef pgcd(a,b):\n    while b!=0:\n        a,b=b,a%b\n    return a\n\n# fonction de chiffrement affine\n\ndef chiffrementAffine(a,b,L):\n        alphabet=[\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\"]\n        x=alphabet.index(L)\n        y=(a*x+b)%26\n        return alphabet[y]\n\n# Calcul de l'inverse d'un nombre modulo 26\n\ndef inverse(a):\n        x=0\n        while (a*x%26!=1):\n                x=x+1\n        return x\n\n# Fonction de d\u00e9chiffrement\n\ndef dechiffrementAffine(a,b,L):\n    alphabet=[\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\"]\n    x=alphabet.index(L)\n    y=(inverse(a)*(x-b))%26\n    return alphabet[y]\n                \n\n# Affichage du mot chiffr\u00e9\n\ndef crypt(M,a,b):\n    if (pgcd(a,26)==1):\n        mot = []\n        for i in range(0,len(M)):\n                mot.append(chiffrementAffine(a,b,M[i]))\n        return \"\".join(mot)\n    else:\n        return \"Chiffrement impossible. Veuillez choisir un nombre a premier avec 26.\"\n\n# Affichage du mot d\u00e9chiffr\u00e9\n\ndef decrypt(M,a,b):\n    if (pgcd(a,26)==1):\n        mot = []\n        for i in range(0,len(M)):\n                mot.append(dechiffrementAffine(a,b,M[i]))\n        return \"\".join(mot)\n    else:\n        return \"D\u00e9chiffrement impossible. Le nombre a n'est pas premier avec 26.\"\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Une autre variante des deux derni\u00e8res fonctions est :<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Affichage du mot chiffr\u00e9\n\ndef crypt(M,a,b):\n    if (pgcd(a,26)==1):\n        mot = [chiffrementAffine(a,b,i) for i in M]\n        return \"\".join(mot)\n    else:\n        return \"Chiffrement impossible. Veuillez choisir un nombre a premier avec 26.\"\n\n# Affichage du mot d\u00e9chiffr\u00e9\n\ndef decrypt(M,a,b):\n    if (pgcd(a,26)==1):\n        mot = [dechiffrementAffine(a,b,i) for i in M]\n        return \"\".join(mot)\n    else:\n        return \"D\u00e9chiffrement impossible. Le nombre a n'est pas premier avec 26.\"\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En tapant :<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">crypt(\"MATH\",3,7)<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">on demande de chiffrer le mot \u00ab\u00a0MATH\u00a0\u00bb en prenant&nbsp;<em>a<\/em> = 3 et&nbsp;<em>b<\/em> = 7.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le programme nous retourne alors : \u00ab\u00a0RHMC\u00a0\u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Maintenant, en tapant :<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">decrypt(\"RHMC\",3,7)<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">on demande de d\u00e9chiffrer le message.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le programme retourne alors : \u00ab\u00a0MATH\u00a0\u00bb (logique !).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bien entendu, si on prend&nbsp;<em>a<\/em> = 13, le chiffrement est impossible (car 13 et 26 ne sont pas premiers entre eux) et le programme retourne la phrase :<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><em>Chiffrement impossible. Veuillez choisir un nombre a premier avec 26.<\/em><\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Le chiffrement affine \u00e9tait au programme de Sp\u00e9cialit\u00e9 Math en Terminale S en France (exigible pour le bac).<\/p>\n\n\n\n<div class=\"wp-block-file aligncenter\"><a href=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2019\/02\/chiffrement.zip\">chiffrement<\/a><a href=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2019\/02\/chiffrement.zip\" class=\"wp-block-file__button\" download>T\u00e9l\u00e9charger<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Le chiffrement affine est une m\u00e9thode de chiffrement bas\u00e9e sur les fonctions affines&#8230; Mouais ! En d&rsquo;autres termes, si x&nbsp;est le code d&rsquo;une lettre sur un alphabet d\u00e9termin\u00e9 alors cette derni\u00e8re sera transform\u00e9e en une autre lettre dont le code est \u00e9gal \u00e0&nbsp;ax+b mod&nbsp;n (o\u00f9&nbsp;n est&nbsp;le nombre de caract\u00e8res de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,6,5],"tags":[19,20],"class_list":["post-338","post","type-post","status-publish","format-standard","hentry","category-informatique","category-mathematiques","category-python","tag-chiffrement","tag-chiffrement-affine"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Chiffrement affine en Python - Mathweb.fr<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mathweb.fr\/euclide\/2018\/08\/19\/chiffrement-affine-en-python\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Chiffrement affine en Python - Mathweb.fr\" \/>\n<meta property=\"og:description\" content=\"Le chiffrement affine est une m\u00e9thode de chiffrement bas\u00e9e sur les fonctions affines&#8230; Mouais ! En d&rsquo;autres termes, si x&nbsp;est le code d&rsquo;une lettre sur un alphabet d\u00e9termin\u00e9 alors cette derni\u00e8re sera transform\u00e9e en une autre lettre dont le code est \u00e9gal \u00e0&nbsp;ax+b mod&nbsp;n (o\u00f9&nbsp;n est&nbsp;le nombre de caract\u00e8res de [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mathweb.fr\/euclide\/2018\/08\/19\/chiffrement-affine-en-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Mathweb.fr\" \/>\n<meta property=\"article:published_time\" content=\"2018-08-19T13:45:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-02-04T16:11:11+00:00\" \/>\n<meta name=\"author\" content=\"St\u00e9phane Pasquet\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"St\u00e9phane Pasquet\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2018\\\/08\\\/19\\\/chiffrement-affine-en-python\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2018\\\/08\\\/19\\\/chiffrement-affine-en-python\\\/\"},\"author\":{\"name\":\"St\u00e9phane Pasquet\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"headline\":\"Chiffrement affine en Python\",\"datePublished\":\"2018-08-19T13:45:33+00:00\",\"dateModified\":\"2021-02-04T16:11:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2018\\\/08\\\/19\\\/chiffrement-affine-en-python\\\/\"},\"wordCount\":299,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"keywords\":[\"chiffrement\",\"chiffrement affine\"],\"articleSection\":[\"Informatique\",\"Math\u00e9matiques\",\"Python\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2018\\\/08\\\/19\\\/chiffrement-affine-en-python\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2018\\\/08\\\/19\\\/chiffrement-affine-en-python\\\/\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2018\\\/08\\\/19\\\/chiffrement-affine-en-python\\\/\",\"name\":\"Chiffrement affine en Python - Mathweb.fr\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#website\"},\"datePublished\":\"2018-08-19T13:45:33+00:00\",\"dateModified\":\"2021-02-04T16:11:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2018\\\/08\\\/19\\\/chiffrement-affine-en-python\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2018\\\/08\\\/19\\\/chiffrement-affine-en-python\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2018\\\/08\\\/19\\\/chiffrement-affine-en-python\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Chiffrement affine en Python\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#website\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/\",\"name\":\"Mathweb.fr\",\"description\":\"Math\u00e9matiques, LaTeX et Python\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\",\"name\":\"St\u00e9phane Pasquet\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"contentUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"width\":74,\"height\":77,\"caption\":\"St\u00e9phane Pasquet\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Chiffrement affine en Python - Mathweb.fr","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mathweb.fr\/euclide\/2018\/08\/19\/chiffrement-affine-en-python\/","og_locale":"fr_FR","og_type":"article","og_title":"Chiffrement affine en Python - Mathweb.fr","og_description":"Le chiffrement affine est une m\u00e9thode de chiffrement bas\u00e9e sur les fonctions affines&#8230; Mouais ! En d&rsquo;autres termes, si x&nbsp;est le code d&rsquo;une lettre sur un alphabet d\u00e9termin\u00e9 alors cette derni\u00e8re sera transform\u00e9e en une autre lettre dont le code est \u00e9gal \u00e0&nbsp;ax+b mod&nbsp;n (o\u00f9&nbsp;n est&nbsp;le nombre de caract\u00e8res de [&hellip;]","og_url":"https:\/\/www.mathweb.fr\/euclide\/2018\/08\/19\/chiffrement-affine-en-python\/","og_site_name":"Mathweb.fr","article_published_time":"2018-08-19T13:45:33+00:00","article_modified_time":"2021-02-04T16:11:11+00:00","author":"St\u00e9phane Pasquet","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"St\u00e9phane Pasquet","Dur\u00e9e de lecture estim\u00e9e":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.mathweb.fr\/euclide\/2018\/08\/19\/chiffrement-affine-en-python\/#article","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2018\/08\/19\/chiffrement-affine-en-python\/"},"author":{"name":"St\u00e9phane Pasquet","@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"headline":"Chiffrement affine en Python","datePublished":"2018-08-19T13:45:33+00:00","dateModified":"2021-02-04T16:11:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2018\/08\/19\/chiffrement-affine-en-python\/"},"wordCount":299,"commentCount":2,"publisher":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"keywords":["chiffrement","chiffrement affine"],"articleSection":["Informatique","Math\u00e9matiques","Python"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.mathweb.fr\/euclide\/2018\/08\/19\/chiffrement-affine-en-python\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.mathweb.fr\/euclide\/2018\/08\/19\/chiffrement-affine-en-python\/","url":"https:\/\/www.mathweb.fr\/euclide\/2018\/08\/19\/chiffrement-affine-en-python\/","name":"Chiffrement affine en Python - Mathweb.fr","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#website"},"datePublished":"2018-08-19T13:45:33+00:00","dateModified":"2021-02-04T16:11:11+00:00","breadcrumb":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2018\/08\/19\/chiffrement-affine-en-python\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mathweb.fr\/euclide\/2018\/08\/19\/chiffrement-affine-en-python\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.mathweb.fr\/euclide\/2018\/08\/19\/chiffrement-affine-en-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.mathweb.fr\/euclide\/"},{"@type":"ListItem","position":2,"name":"Chiffrement affine en Python"}]},{"@type":"WebSite","@id":"https:\/\/www.mathweb.fr\/euclide\/#website","url":"https:\/\/www.mathweb.fr\/euclide\/","name":"Mathweb.fr","description":"Math\u00e9matiques, LaTeX et Python","publisher":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mathweb.fr\/euclide\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69","name":"St\u00e9phane Pasquet","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","contentUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","width":74,"height":77,"caption":"St\u00e9phane Pasquet"},"logo":{"@id":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp"}}]}},"_links":{"self":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts\/338","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/comments?post=338"}],"version-history":[{"count":0,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts\/338\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/media?parent=338"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/categories?post=338"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/tags?post=338"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}