# data[].attributes.attachment_link.description
An encrypted chat in Python for school. Contribute to Helyosis/prik development by creating an account on GitHub.

# data[].attributes.body
80 tickets = 90 euros

# data[].attributes.body
N°29 : Télédétection  (LETG Rennes 2 )
N°38 : Les champs d’analyse des linguistes (Rennes 2)
N°45 : Découvrez les mécanismes de la création chez Paul Klee grâce à une application numérique ludique (Rennes 2)
N°46 : Observation des usages des technologies (Rennes 2)
N°23:  Les coulisses des vidéos sur votre portable (INSA)
N°3:  Lumière, matière : mystère(s) ?

# data[].attributes.body
Découverte du HTML et du CSS

# data[].attributes.attachment_link.readable_text
Article 1 - Le programme d'enseignement facultatif d'informatique et création numérique en classe de première des séries générales et en classe terminale des séries ES et L est fixé conformément à l'annexe du présent arrêté.

Article 2 - Les dispositions du présent arrêté entrent en application à la rentrée de l'année scolaire 2016-2017 pour les classes de première et à la rentrée de l'année scolaire 2017-2018 pour les classes terminales ES et L.

Article 3 - La directrice générale de l'enseignement scolaire est chargée de l'exécution du présent arrêté, qui sera publié au Journal officiel de la République française.

Fait le 16 juin 2016

Pour la ministre de l'éducation nationale, de l'enseignement supérieur et de la recherche
et par délégation,
La directrice générale de l'enseignement scolaire,
Florence Robine

Programme d'enseignement facultatif informatique et création numérique
Le texte qui suit applique les rectifications orthographiques proposées par le Conseil supérieur de la langue française, approuvées par l'Académie française et publiées par le Journal officiel de la République française le 6 décembre 1990.
Préambule

Dans la société contemporaine, le numérique transforme et conditionne largement notre représentation du monde et nos relations à autrui, nos façons de penser et de créer, nos modes de travail et de sociabilité, ainsi que nos manières de produire et de diffuser le savoir. L'acquisition d'une culture numérique construite sur des connaissances en informatique est indispensable et elle doit ouvrir aux champs scientifiques qui la fondent. Elle doit également préparer chacun à agir et à participer pleinement à la vie sociale, économique et culturelle.

Bien plus que de capacités liées à l'usage des outils, il s'agit de maitriser un certain nombre de notions afin de comprendre les logiques et les enjeux du traitement de l'information et de pouvoir décoder les processus à l'œuvre dans les algorithmes, les écritures et les systèmes complexes qui sous-tendent le fonctionnement de notre société ; il s'agit, enfin, de mobiliser le numérique comme vecteur de créativité, dans une expérience collective et partagée.

La meilleure manière d'y parvenir est d' expérimenter soi-même la réalisation de programmes de traitement, de stockage, de transformation et d'échange de contenus numérisés. Face à la rapide évolution des objets informatiques, des normes et des langages et au développement des pratiques de partage, il est indispensable d'acquérir des savoirs pérennes et de développer une posture à la fois de concepteur, de créateur et d'utilisateur éclairé.

L'enseignement facultatif " informatique et création numérique " s'adresse aux élèves de première de toutes les séries du lycée général, et aux élèves de terminale des séries ES et L. Il vise à leur faire appréhender l'importance de l'informatique aussi bien dans les sciences que dans les lettres, les langues, les arts, les sciences humaines et sociales.

En sciences de la nature (astronomie, biologie, chimie, géologie, physique, etc.) fondées sur l'observation et l'expérimentation, l'informatique offre des méthodes et des outils permettant de créer et de tester des modèles, de simuler des phénomènes, d'acquérir, de stocker, de traiter et de présenter de grandes quantités de données. En sciences humaines et sociales, l'informatique offre des méthodes et des outils de plus en plus sophistiqués pour l'interrogation de corpus d'information (textuels, audio, vidéo, cartographiques, etc.), pour l'analyse quantitative de données (données publiques, enquêtes, etc.) et pour la modélisation. De la collecte et du chiffrage de données brutes au traitement puis à la représentation des données, c'est tout un ensemble d'opérations plus ou moins complexes qui sont aujourd'hui instrumentées ou automatisées. Face à l'accroissement considérable des volumes de données, les représentations visuelles, parfois interactives (graphiques, diagrammes, cartogrammes, etc.) permettent de mieux appréhender ces données et d'en percevoir les enjeux. Dans les domaines littéraire et linguistique, la recherche, la lecture, l'interprétation et l'écriture sont également transformées par le recours à l'informatique : documentation automatisée, traitement et analyse automatique des textes et des corpus, de la langue, du lexique, linguistique quantitative, analyse stylistique, pratique du commentaire, de l'annotation et de la recommandation à travers des plateformes de collaboration et de partage, littérature générative combinatoire, etc. En art, qu'il s'agisse des arts plastiques, des arts visuels, des arts appliqués, de la musique, de la danse ou de la littérature, différents courants recourent à l'utilisation d'algorithmes et de programmes pour interpréter ou créer des œuvres.

Objectifs

L'ambition de l'enseignement facultatif " informatique et création numérique " est d'amener les élèves de première et terminale des voies générales à approfondir et développer des connaissances scientifiques et techniques en informatique, de leur faire découvrir les multiples applications dans d'autres champs disciplinaires et de leur faire comprendre combien le traitement automatisé de l'information y est devenu déterminant.

Cet enseignement vise un triple objectif :

- amener les élèves à adopter un point de vue de concepteurs et de créateurs d'objets informatiques, en leur donnant des bases de la programmation et une bonne compréhension des principes du traitement automatique de données numérisées, allant jusqu'à la réalisation ;

- permettre aux élèves de développer en situation une réflexion épistémologique et éthique, notamment sur les enjeux du recueil, de l'exploitation et de la diffusion de grandes quantités de données, en les amenant à traiter et publier eux-mêmes des données ;

- les aider à développer leur autonomie et leurs capacités à mettre en œuvre une méthode de travail incluant la démarche de projet, le travail collaboratif et l'approche par essai-erreur.

Cet enseignement prend appui sur les connaissances en informatique introduites au collège en mathématiques et en technologie et, le cas échéant, prolonge l'enseignement d'exploration " informatique et création numérique " (ICN) de la classe de seconde sans en faire un prérequis.

Modalités pédagogiques

Cet enseignement repose principalement sur la participation active des élèves. Les activités proposées aboutissent à des réalisations concrètes dans le cadre de projets : programmes, documents enrichis, dispositifs techniques, créations artistiques ou littéraires, etc. Le ou les professeurs en charge de cet enseignement en association avec un ou plusieurs professeurs d'autres disciplines accompagnent les élèves de diverses manières : apport de connaissances en informatique et notamment en programmation, aide à la construction méthodique du projet, étayage pour une analyse critique et distanciée, mise en relation avec les domaines d'étude et les enseignements spécifiques à chaque filière.

Les élèves travaillent dans des environnements numériques permettant des activités individuelles et collectives de programmation, de production, de manipulation et de partage de contenus numériques, de publication de résultats, d'animation d'espaces collaboratifs. Ces environnements numériques peuvent comporter un ou plusieurs logiciels, dispositifs qui sont choisis sur des critères de simplicité d'utilisation, de mise en œuvre et de disponibilité, et de préférence parmi les logiciels libres et gratuits, en fonction des besoins des élèves pour leurs réalisations. L'appropriation des environnements numériques par les élèves nécessite l'acquisition de savoirs en matière d'architectures logicielles (distinguer les différents systèmes d'exploitation et logiciels utilisés), d'espaces et services distants (modèle client-serveur, espaces de stockage distants), de circulation et d'échange d'informations sur les réseaux, de codages et normes utilisées (normes de codage des caractères, formats de fichiers), de droits et licences (droits d'usage, droits d'auteur, logiciels libres, licences libres).

Contenu et mise en œuvre du programme

L'enseignement est organisé en une progression d'activités, permettant la découverte de notions, principes et objets (logiciels, environnements, langages, objets techniques). Les activités visent à acquérir les notions et principes fondamentaux qui s'organisent autour de deux axes : la numérisation de l'information (approche analogique et approche numérique, intérêt de la représentation binaire, principes de codage des textes, des images et des sons) d'une part, et, d'autre part, l'algorithmique et la programmation (méthode algorithmique de résolution d'un problème, formalisation sous forme d'un algorithme, programmation, documentation d'un programme, jeu d'essai et test). Ces activités supposent des connaissances de base en matière de logiciels, machines et réseaux.

Ces activités consistent en la réalisation de programmes permettant de faire des manipulations simples sur trois types de données, concernant leur structuration et leur visualisation. Les trois types doivent être abordés. Il s'agit :

- des textes bruts, en tant que séquences de caractères sans mise en forme : numérisation des textes, codage des textes (caractères et textes), recherche d'occurrences, construction de lexique, recherche dans un lexique, construction d'index, recherche dans un index, recherche dans un texte, chiffrement et cryptanalyse.

- des images : numérisation d'images, images matricielles - images vectorielles, formats d'images, codage des couleurs, conversion en niveaux de gris, histogrammes des valeurs, amélioration d'images, création d'images vectorielles.

- des " données structurées " : formats de données structurées, hypertextes, construction de page web, métadonnées, recherche d'information, tables de données, construction de requêtes.

L'enseignant organisera la progression des activités sur les deux années en s'appuyant sur les repères fournis en annexe.

Dans la perspective de la réalisation des projets, des champs d'application spécifiques sont explorés, en restant au niveau de la découverte. Les champs sélectionnés pour ce programme présentent l'intérêt de se prêter à rencontrer des questionnements propres aux disciplines des filières ES, L et S. Les champs proposés sont :

- visualisation et représentation graphique de données : il s'agit de représenter graphiquement des données chiffrées afin de fournir une " image " sur laquelle des informations seraient rendues visibles. Selon la nature des données disponibles, il peut s'agir de graphiques, de graphes, de cartes ou de cartogrammes. Leur conception et réalisation s'articule autour de trois phases de travail : le recueil ou la recherche de l'information à représenter, la préparation d'une base de données (stockage), l'exportation des données, le développement d'un programme utilisant une bibliothèque spécialisée, ou la programmation d'un robot. Dans le cadre des projets, l'enseignant accompagne les élèves dans une réflexion sur les apports de la visualisation pour aider à appréhender de grandes quantités de données, dans différents domaines, faire des analyses ou des hypothèses. C'est également l'occasion de rappeler combien le choix d'une représentation peut suggérer et influencer l'interprétation des données.

- création et génération automatique : il s'agit de créer un programme capable de générer, éventuellement par l'intermédiaire d'un robot, des formes, des textes, des images, des images en mouvements, des enchaînements sonores. À partir de bases de données d'éléments unitaires (mots ou suites de mots, notes ou suites de notes, parties d'images, gestes ou mouvements), qualifiés selon les fonctions grammaticales qu'ils peuvent remplir, des algorithmes combinent ces éléments selon les règles d'une grammaire en vigueur ou d'une grammaire réinventée. Plus simplement, à partir d'une combinaison donnée d'éléments, l'algorithme peut modifier les éléments par tirages aléatoires dans la base et/ou réaliser des transformations des éléments (inversion, répétition, substitution, transposition, etc.). La sélection de la base d'éléments participe du travail de création, en réduisant plus ou moins l'ampleur donnée à l'aléatoire. Dans le cadre des projets, l'enseignant accompagne les élèves dans une réflexion sur les possibilités artistiques ouvertes par les modes d'écriture numérique, ainsi que sur les perspectives d'invention et de création offertes.

- traitement et analyse de textes, de corpus et lexicométrie : il s'agit d'aborder les textes en comptant des occurrences des mots, en construisant des lexiques, en effectuant des comparaisons, etc. Ces données permettent de dégager des caractéristiques d'un texte, des constantes et des variations, dans la construction comme dans le vocabulaire et d'effectuer des comparaisons entre textes dans un ou plusieurs corpus. Une telle analyse peut s'appliquer sur différents types de textes selon le questionnement : textes littéraires, discours politiques, supports publicitaires, forum de discussions, etc. Dans le cadre des projets, l'enseignant accompagne les élèves dans une réflexion critique sur les apports et les limites d'une analyse de texte fondée sur le calcul et sur la manière dont elle peut s'articuler avec une analyse qualitative.

- enquête et analyse statistique : il s'agit de réaliser une enquête et d'analyser les données recueillies. Cela comporte la création de questionnaires, leur administration, le recueil et la conservation des réponses et le traitement et l'analyse des réponses. Il est possible de se centrer plus sur la partie recueil des données, ou plus sur la partie analyse de données déjà recueillies, en utilisant des données ouvertes et libres. Dans le cadre des projets, l'enseignant accompagne les élèves dans une réflexion sur la rigueur nécessaire dans un travail d'enquête et des questions critiques qui l'accompagnent : vérification de l'origine des données, représentativité d'une population, non neutralité de la formulation et du choix des questions.

- base de données documentaires : il s'agit de rassembler des documents homogènes ou hétérogènes et de les indexer à l'aide de descriptions communes. L'objectif est de mettre en œuvre leur disponibilité à la recherche, à la consultation et au partage. Dans le cas où il s'agit de documents textes non structurés, un travail de description par des métadonnées est nécessaire. La mise en œuvre peut reposer sur des solutions relationnelles. Selon les projets, l'enseignant accompagne les élèves dans une réflexion sur les apports des différents modes de présentation, de classement et d'indexation et les méthodes de recherche associées : recherche par description, à base d'index, et recherche par fragment, en plein texte ; les difficultés soulevées par la recherche dans des images, des vidéos, des documents sonores ; la façon dont le mode de description des documents participe à une organisation, un classement et une hiérarchisation des connaissances.

- simulation : il s'agit de créer un programme informatique qui simule un phénomène physique, économique ou social. À partir d'un modèle du phénomène à simuler, des règles sont établies puis sont implémentées par un programme informatique. Il s'agit de faire varier les conditions initiales et les paramètres du modèle afin d'en tester la validité. Dans le cadre des projets, l'enseignant accompagne les élèves dans une réflexion sur l'apport d'une approche des phénomènes par la simulation, par rapport à une approche par la démonstration ou par l'expérimentation.

Un projet est réalisé par les élèves en groupes de deux ou trois et est finalisé par une réalisation.
Il peut porter sur une analyse de données ou de documents répondant à une problématique ou consister en un travail de création. La réalisation prend diverses formes selon la nature du projet : prototype, document enrichi, document multimédia, etc. Les données utilisées peuvent être capturées automatiquement (par des capteurs ou des objets connectés) ou collectées (par saisie manuelle ou par moissonnage sur Internet) ou réutilisées. Pour ce dernier cas, les données libres et ouvertes ( OpenData) et tout particulièrement celles mises à disposition par des institutions publiques françaises( insee.fr, data.gouv.fr) constituent une source fiable.

Le choix des champs d'application explorés relève de l'enseignant. Il doit toutefois aborder au moins un des champs d'application listés ci-dessus. Il peut s'inspirer des exemples indicatifs proposés en annexe, à titre d'illustration, pour créer ses propres activités selon ses centres d'intérêt, les conditions d'exercice offertes dans son établissement, les ressources de son environnement ou les spécificités et les attentes de ses élèves. L'objet du projet est choisi et élaboré en concertation avec les élèves, afin d'assurer leur implication et leur motivation. Toutefois l'enseignant s'assure que le projet est de difficulté raisonnable afin que les élèves puissent le faire aboutir.

Dans l'élaboration du projet, l'enseignant aide les élèves à s'organiser et à répondre à un certain nombre de points : définition du problème à résoudre ou du besoin auquel répondre ; apport de connaissances ; description de la forme de la solution attendue ; choix de la stratégie de résolution et des programmes à développer ou des logiciels à utiliser ; décomposition du problème en sous-problèmes ; détermination des étapes de mise en œuvre ; partage des rôles ; techniques d'évaluation et de test du résultat. L'enseignant encadre aussi les élèves dans la prise en main et le paramétrage de leur environnement, ainsi que dans la gestion de leur documentation, la documentation technique, les ressources.

Annexe 2
Exemples de projets et d'activités associées

Visualisation graphique de données : exemple avec des données géolocalisées

1. Nature du projet

Le projet consiste en l'analyse d'une question liée à une thématique particulière : économique, démographique, sociale, environnementale, etc. à partir de différents types de données chiffrées, parmi lesquelles des données géolocalisées. Le travail comporte la sélection, le traitement, l'analyse des données et le choix des modes de représentation (tableaux, graphiques, cartogrammes). L'utilisation de données libres et ouvertes doit être privilégiée. Ce projet permet d'initier les élèves à la géomatique (contraction de " géographie " et " informatique ") et d'engager une réflexion sur les enjeux politiques et philosophiques de la géolocalisation.

La réalisation finale peut être un tableau de bord permettant d'agréger et de visualiser les résultats. Il peut être restitué dans une page web qui peut intégrer des fonctionnalités interactives qui permettent de jouer sur certains paramètres comme par exemple la période étudiée, le format ou la couleur des graphiques.

2. Activités guidées préparatoires (exemples)

Il est important que les élèves écrivent eux-mêmes des programmes qui importent des données structurées (CSV, XML, JSON, etc.) et dessinent des représentations graphiques " simples " comme des histogrammes.

Il est intéressant que les élèves utilisent des logiciels cartographiques comme des systèmes d'information géographique (SIG), des services de cartographie en ligne (webmapping) ou de simples éditeurs en ligne pour construire des cartes ou des cartogrammes (avec surfaces d'entités spatiales proportionnelles à une variable quantitative) à partir de données géolocalisées externes ou personnelles.

3. Exemples de projets

En géographie. Étudier l'évolution d'un territoire (monde, continent, États, régions, métropoles, communes, quartiers ...) sur ces 10, 20, 30 dernières années et imaginer ses futurs possibles (urbanisation, transports, densité, etc.). Le tableau de bord peut intégrer des images satellites, des photographies et des photomontages ou des paysages virtuels si le sujet s'inscrit dans une démarche géoprospective.

En histoire. Présenter l'évolution d'un phénomène historique géolocalisable sur le long terme (exemple : le commerce triangulaire à partir de données libres et ouvertes).

En économie ou en sociologie. Étudier la répartition d'un indicateur économique (PIB, taux de chômage, taux de mortalité, etc.) selon le territoire (à différentes échelles : régionale, nationale, internationale, etc.) et son évolution dans le temps. On peut mener une réflexion sur la manière dont la représentation visuelle et les paramètres d'agrégation choisis influencent la synthèse réalisée.

Création artistique multimédia et écriture interactive

1. Nature du projet

Le projet consiste en la réalisation d'une " œuvre " multimédia et interactive, pouvant comporter une part de génération automatique des éléments qui la constituent (texte, image, sons, etc.). Il est intéressant d'explorer les possibilités offertes par le recours à l'aléatoire, les multiples façons d'ajouter des contraintes ou des paramétrages liés aux événements d'interaction (souris, clavier, capteur de mouvement, etc.). Il peut s'agir également d'explorer les possibilités de l'écriture interactive hypertextuelle. Le travail permet d'engager une réflexion sur la co-écriture de l'œuvre par son créateur et son lecteur au sens large.

La réalisation finale peut être une œuvre hypertextuelle proposant une " déambulation " dynamique incluant éventuellement des contenus multimédia (œuvre hypermédia) et recourant à l'aléatoire.

2. Activités guidées préparatoires (exemples)

Différents types d'activités permettront d'explorer : la notion de grammaire, la constitution des bases d'éléments unitaires de la grammaire, la conception d'algorithme de génération automatique et l'écriture de générateurs. Des activités consisteront en l'écriture de différents générateurs de textes, d'images ou de sons selon la nature des projets. Par exemple sur les textes : créer un générateur de phrase syntaxiquement correcte selon une structure simple (par exemple un groupe nominal suivi d'un groupe verbal suivi d'un groupe nominal), créer un générateur de poèmes selon le principe des " Cent mille milliards de poèmes " de Raymond Queneau, etc. Sur des images : créer un programme qui transforme des images selon des interactions du lecteur, créer un générateur associant des images à des mots, etc. Des activités peuvent porter sur l'hypertexte et la conception d'une navigation à l'aide de représentations graphiques.

3. Exemples de projets

Les exemples sont multiples et peuvent traverser différents domaines de la création artistique :

- la création d'un livre hypertextuel, à la manière des " livres dont vous êtes le héros " dans lequel le lecteur navigue en répondant à des questions. Il serait intéressant d'explorer le recours à une part d'aléatoire dans le lien hypertexte emprunté.

- un projet explorant différentes formes de créations poétiques utilisant la génération automatique (" cadavres exquis ", Oulipo, etc.) et les interactions avec le lecteur afin de moduler le recours à l'aléatoire.

- la génération automatique d'images vectorielles, dont les paramètres varient selon des événements d'interactions (cela peut être couplé avec un dispositif de captation de mouvements).

- la création d'une chorégraphie fondée sur des phrases dansées générées par un programme et revisitées par les " danseurs " afin de parvenir à les réaliser. Un travail sur le choix des gestes et mouvements " élémentaires " et sur la " grammaire " qui les assemble peut être conduit.

- etc.

Étude lexicométrique et analyse de texte ou de corpus

1. Nature du projet

Le projet consiste en la réalisation d'une analyse de texte ou de corpus au moyen de la lexicométrie. Il s'agit de quantifier et comparer les emplois des mots ou des groupes de mots, de construire des relations, d'effectuer des comparaisons et des associations afin de comprendre et de dégager les caractéristiques des textes d'un corpus et d'accéder à une échelle plus fine d'interprétation. Il peut s'agir de textes littéraires, de textes historiques, de discours, d'échanges sur un forum, etc. selon le sujet sur lequel porte le projet. Les textes doivent être numérisés afin de permettre un traitement automatique. Il est recommandé de recourir à des œuvres du domaine public disponibles sur Internet.

La réalisation finale peut être une page web présentant les résultats de l'analyse effectuée, donnant accès au corpus de textes utilisés et proposant éventuellement une interface à un programme développé dans le projet.

2. Activités guidées préparatoires (exemples)

Il est important que les élèves écrivent eux-mêmes des programmes réalisant des calculs simples sur les textes : un programme qui compte et affiche (éventuellement graphiquement) le nombre d'occurrences de mots ou d'expressions dans un texte ; un programme qui " reconnaît " la langue d'un texte en mesurant les fréquences des lettres ou de certains graphèmes (ou bigrammes et trigrammes), etc.

Il est intéressant également que les élèves apprennent à utiliser des logiciels d'analyse à installer ou disponibles en ligne (de préférence libres et gratuits) : un logiciel de recherche et de comptage de mots sur des corpus permettant d'étudier l'histoire d'une langue pour repérer l'évolution de l'usage des mots ; un logiciel d'analyse textométrique pour repérer les spécificités d'un texte par rapport à d'autres textes, etc.

3. Exemples de projets

En littérature. On peut rechercher les mots, expressions ou syntagmes les plus utilisés dans une œuvre, les classer pour mettre en évidence, par exemple, l'utilisation d'expressions synonymes ou de sens proches et comparer leurs utilisations. Cette observation des faits de langue peut permettre d'identifier le vocabulaire propre à un auteur et la manière dont se constitue son style.

En langues vivantes. Le travail précédemment décrit peut se faire sur un auteur en langue étrangère.

En histoire ou en sociologie politique. On peut rechercher les mots les plus utilisés dans les discours politiques des représentants de différents partis, pour mettre en évidence au travers des expressions les plus ou les moins utilisées, une identification partisane, un clivage gauche/droite, les sous-cultures politique, etc.

Réalisation d'une enquête et analyse statistique

1. Nature du projet

La méthode de l'enquête quantitative consiste en le recueil d'informations et/ou d'opinions auprès d'une population déterminée, afin soit d'explorer une question, soit de vérifier des hypothèses. Les étapes consistent en la réalisation d'un questionnaire, son administration auprès de la population interrogée, le recueil et la mise en forme des réponses, leur traitement statistique, l'analyse et la présentation des résultats. Dans le cadre d'un projet d'élève, il est possible de centrer le travail sur la partie recueil des données : élaboration du questionnaire, réalisation via un système de formulaire en ligne (logiciel libre, ou formulaire inséré dans une page web), diffusion du formulaire, récupération ou mise en forme des réponses dans un format tabulaire, traitement des réponses à l'aide d'un logiciel tableur par exemple. L'analyse peut être réduite à quelques tris à plat ou tris croisés. Une autre possibilité est de centrer le travail plutôt sur la partie analyse statistique, en utilisant des données libres et ouvertes.

La réalisation finale comporte la présentation du questionnaire et/ou la description des données utilisées (un dictionnaire des données peut être élaboré) et des résultats de l'analyse.

2. Activités guidées préparatoires (exemples)

Les activités visent à introduire aux différentes étapes nécessaires au projet : rédaction du questionnaire : ordre des questions, formulation des questions, questions ouvertes, questions fermées, codification ; constitution d'un échantillon : méthode des quotas, exhaustif, tirage aléatoire ; écriture d'un questionnaire en HTML dans une page web avec récupération des réponses par messagerie électronique ; saisie d'un questionnaire dans un logiciel de gestion de questionnaires en ligne ; exploitation d'un fichier de données au format CSV à l'aide d'un tableur : importation, calculs, tris à plat, tris croisés, représentations graphiques, exportation au format image, etc. ; exploration des résultats d'analyse proposés dans un logiciel de gestion de questionnaires en ligne ; recherche de données libres et ouvertes exploitables pour une question donnée.

3. Exemples de projets

De nombreux exemples sont possibles : des enquêtes locales auprès des élèves et des enseignants sur une question liée à la vie de l'établissement, ou son fonctionnement ; une enquête réalisée pour un acteur de la ville (une association par exemple) ; une étude économique ou sociologique à portée régionale, nationale ou internationale basée sur des données libres et ouvertes ; une étude sur un phénomène naturel, écologique, etc. On peut amener les élèves à réfléchir aux enjeux de l'échantillonnage, en montrant comment les résultats changent selon les paramètres initiaux.

Réalisation d'une base de données documentaire

1. Nature du projet

Il s'agit de réaliser une base de documents (textes, images, vidéos) et de permettre une consultation des documents à partir de requêtes sur des données décrivant leur contenu. Il est nécessaire de sélectionner le corpus de documents, d'établir les données permettant de décrire les documents (auteur, année, taille, sujet, etc.), stocker ces données, réaliser des requêtes de consultations. Le projet peut porter plutôt sur la conception de la base ou sur la réalisation d'une interface de consultation d'une base fournie par l'enseignant. Des logiciels ou langage de gestion de base de données relationnelles peuvent être utilisés.

La réalisation finale est constituée par la base de données et la présentation du travail de conception, ou le logiciel de consultation réalisé.

2. Activités guidées préparatoires (exemples)

Les activités peuvent permettre une introduction aux notions et aux langages des bases de données relationnelles : conception d'une base de données de taille modeste répondant à un cas simple (2 ou 3 tables) ; manipulations dans un logiciel de gestion de base de données : création d'une table, insertion de données dans un table, requêtes simples sur une table, requêtes sur plusieurs tables.

3. Exemples de projets

De nombreux exemples sont possibles : base de textes historiques, de documents ou d'images du patrimoine local, base de fiches de révisions pour la préparation du baccalauréat, etc.

Simulation de phénomène

1. Nature du projet

Le projet consiste en l'écriture d'un programme informatique qui simule un phénomène. Il peut aussi s'agir de la création d'une feuille de calcul dans un tableur. À partir d'un modèle du phénomène à simuler, des règles sont établies qui sont implémentées dans le programme ou la feuille de calcul. Il s'agit de faire varier les conditions initiales et les paramètres du modèle afin d'en tester la validité. Cela permet de prendre conscience de la pluralité des variables qui constituent un phénomène. Dans certains cas, la simulation permet de tester ce qu'on ne peut tester dans la réalité.

La réalisation finale peut comporter la présentation d'exemples de simulations obtenues avec le programme ou la feuille de calcul développé et des explications sur les phénomènes simulés.
Il peut être judicieux de proposer plusieurs modèles explicatifs du phénomène étudié.

2. Activités guidées préparatoires (exemples)

Dans le cas où les élèves ont à écrire un programme, les activités préparatoires consisteront en la réalisation de divers petits programmes utiles dans la perspective du projet : un programme réalisant un calcul à partir de données en entrée, un programme réalisant une animation simple, etc.

Dans le cas où les élèves utiliseront un tableur, les activités préparatoires consisteront à réaliser divers calculs et manipulations afin d'explorer les fonctions utiles pour le projet, par exemple : fonctions de calculs arithmétiques, fonctions logiques (OU, ET, NON), fonction conditionnelle (SI), fonctions de recherche.

3. Exemples de projets

En physique. Écrire un programme de simulation de mouvement d'objets qui met en œuvre une loi de Newton et restitue la simulation au moyen d'une animation. Utilisation de cette simulation pour vérifier certaines propriétés, par exemple simuler la chute d'un corps et vérifier que sans frottements, la vitesse de chute ne dépend pas de la masse de l'objet.

En sciences de la vie et de la Terre. Écrire un programme de simulation de la propagation d'une épidémie. La restitution peut prendre la forme d'une animation ou de tableaux de valeurs obtenues (taille de la population touchée, etc.) Utilisation de cette simulation pour vérifier les propriétés de la propagation en changeant certains paramètres. On peut sensibiliser les élèves aux perspectives prometteuses ouvertes par l'informatique pour ce qui concerne la santé publique.

En économie. Concevoir un programme de simulation de politique macroéconomique qui place l'utilisateur en situation de prendre des décisions visant à améliorer un objectif du " carré magique " de N. Kaldor (taux de chômage, taux de croissance ...). Le programme calculera de nouvelles valeurs des variables endogènes de façon à simuler les effets de la politique économique mise en œuvre. On peut amener les élèves à réfléchir aux limites du caractère prédictif des simulations économiques, dans la mesure où ces prédictions font elles-mêmes partie de l'information disponible dont les acteurs économiques tiennent compte dans leurs stratégies (selon la théorie des jeux).

Transformations et manipulations d'images

1. Nature du projet

Le projet consiste en l'application de diverses transformations à des images, en faisant varier les différents paramètres sur chaque pixel.

La réalisation finale peut être une page web présentant les différents résultats obtenus avec des programmes développés par les élèves ou avec des logiciels spécialisés.

2. Activités guidées préparatoires (exemples)

Les activités consisteront en l'écriture de différents programmes réalisant des calculs ou des modifications sur des images pour : transformer une image en couleur en image en noir et blanc, afficher l'histogramme des fréquences des intensités (ou des couleurs) de l'image, améliorer le contraste, transformer une image par effet de seuil, rendre flou une image, aider à trouver les sept différences entre deux images, détecter une couleur dans une image.

3. Exemples de projets

En sciences de la vie et de la Terre. Appliquer des transformations à des images visant à reproduire l'effet de phénomènes ou de maladies sur la vision (daltonisme, myopie, dégénérescence maculaire, prise de drogue, etc.). Il s'agit d'explorer les mécanismes de la vision et comment passer de ces mécanismes à un traitement informatique. Il est possible de proposer différentes modélisations pour un même problème. Des logiciels présentant les mécanismes de la vision peuvent être utilisés. On peut amener les élèves à réfléchir aux perspectives sur le plan médical, mais aussi aux possibilités de manipulation de l'image rendues possibles par l'informatique.

En géographie. Appliquer des transformations à des images d'observation de la Terre visant à mettre en évidence la végétation, des zones humides, des zones urbaines, des zones agraires, etc. et étudier leur évolution.

En arts plastiques. Ecrire un programme qui applique, éventuellement de manière dynamique ou interactive, des transformations à des images de manière à imiter le rendu d'une technique ou d'un style pictural.

Annexe 3
Repères

Cet enseignement peut s'appuyer sur les acquis en informatique des programmes de technologie et de mathématiques, et tirer parti de l'enseignement d'algorithmique inscrit au programme de mathématiques de la classe de seconde. Les élèves pourront ainsi progressivement construire et approfondir leurs connaissances selon quatre perspectives :

1. Machine, logiciel et réseau

Acquis du collège : connaissances des principaux composants matériels et logiciels d'un environnement informatique, principe de stockage des données et des fichiers, fonctionnement d'un réseau informatique. Au cours des deux années, les élèves seront amenés à :

- identifier les types des nouveaux logiciels et programmes utilisés et les types de fichiers ;

- identifier les droits associés à un logiciel (logiciel libre ou propriétaire, logiciel gratuit) ;

- choisir une licence de partage d'un programme ou d'une création (licences libres) ;

- expliquer les principes du mécanisme d'adressage de machines distantes ;

- utiliser le principe du modèle client serveur pour expliquer un échange de données ;

- expliquer les principes du routage de l'information sur un réseau.

2. Représentation de l'information

Les élèves doivent connaître les principes du codage de l'information par une représentation binaire, le principe du code ASCII et de ses extensions (Unicode, UTF-8), le principe du codage d'une image sous la forme d'une matrice de pixels, le principe de la compression des images, le principe du codage d'une image vectorielle, le principe du codage des couleurs au format hexadécimal. Au cours des deux années, les élèves seront amenés à :

- paramétrer l'encodage du texte dans un éditeur ;

- manipuler les pixels d'une image via un programme (écrit par eux) ou via un logiciel d'édition et de retouche d'image ;

- identifier les objets dessinés dans le code d'une image au format SVG ;

- créer une image SVG.

3. Programmation et algorithmique

Acquis du collège : notion d'algorithme et de programme, notion de variable, séquences d'instruction, boucles, instructions conditionnelles, déclenchement d'une action par un événement. Les élèves doivent concevoir des algorithmes simples et les programmer. Au cours des deux années, les élèves seront amenés à :

- écrire un programme qui parcourt un tableau ;

- écrire un programme qui effectue une recherche dans un tableau ;

- écrire un programme utilisant une fonction existante (d'une bibliothèque) avec ou sans paramètre ;

- reconnaître des types d'erreur dans un programme.

4. Diffusion, stockage et données structurées

Les élèves doivent connaître le principe de codage des données tabulaires dans un format simple comme le format CSV, le principe de l'organisation de données en tables dans une base, le principe de l'écriture de requêtes sur une table, les principes de structuration d'une page web. Au cours des deux années, les élèves seront amenés à :

- importer un fichier CSV volumineux dans un tableur et réaliser des comptages, des tris, des filtres ;

- déclarer une table dans un outil de gestion de base de données et la remplir ;

- effectuer des requêtes simples sur une table (projection et sélection) ;

- savoir structurer une page web (au format HTML) utilisant une feuille de style en CSS.

# data[].attributes.attachment_link.title
Classe de première des séries générales et classe terminale des séries ES et L

# data[].attributes.attachment_link.description
Article 1 - Le programme d'enseignement facultatif d'informatique et création numérique en classe de première des séries générales et en classe terminale des séries ES et L est fixé conformément à l'annexe du présent arrêté.

# data[].attributes.attachment_link.readable_text
Vous avez beaucoup de tâches fastidieuses et répétitives au travail ? Vous voulez être capable de faire des choses plus efficacement ? Python peut vous aider !

Python est l'un des langages de programmation les plus utilisés. Apprendre à coder avec Python est une compétence très recherchée dans beaucoup de métiers. Et pas uniquement pour les développeurs logiciels à temps plein. Tout le monde peut apprendre !

Python vous permet d' automatiser des tâches, comme envoyer des e-mails ou écrire dans des fichiers... Tout ça pour vous aider à terminer des tâches plus efficacement.

Ce cours s'adresse aux personnes qui n'ont jamais vu une ligne de code ou qui n'ont jamais entendu parler de Python. Nous allons avancer ensemble pas à pas de façon amusante et facile à comprendre. Je sais ce que ça fait d'être intimidé par le code, ou de n'y rien comprendre. Je veux donc m'assurer que personne ne ressente la même chose.

Dans ce cours, vous allez enregistrer des informations en tant que données en Python. Vous allez contrôler la logique dans votre code avec des conditions, des boucles et des fonctions. Vous allez aussi automatiser la récupération de données à partir du web avec les packages Requests, Beautiful Soup et CSV, dans le processus appelé extraction de données web. Vous allez beaucoup apprendre et vous passerez un bon moment !

Qu'est-ce qu'on attend ? Commençons !

À la fin de ce cours, vous serez capable de :

Pour découvrir l'écosystème du développement web et tous les cours que nous vous proposons à ce sujet, nous vous invitons à faire un tour sur notre Carte des Connaissances ! Vous pourrez y voir en un clin d'œil les différents langages et spécialisations auxquels vous pourrez vous former avec OpenClassrooms !

Créer des données avec Python

Gérer la logique d'un programme dans Python

Extraire des données du web avec les packages Python

La Carte des Connaissances

# data[].attributes.attachment_link.description
Python est très demandé et accessible pour les débutants. Apprenez à coder avec Python pour écrire des programmes simples mais puissants, et pour automatiser les tâches.

# data[].attributes.attachment_link.title
ICN - Programme de l'enseignement facultatif , classes de première et terminale des séries ES et L | Informatique

# data[].attributes.attachment_link.description
L'enseignement facultatif " informatique et création numérique " s'adresse aux élèves de première de toutes les séries du lycée général, et aux élèves de terminale des séries ES et L. Il vise à leur faire appréhender l'importance de l'informatique aussi bien dans les sciences que dans les lettres, les langues, les arts, les sciences humaines et sociales.

# data[].attributes.attachment_link.readable_text
À partir de la rentrée 2017, l' algorithmique et la programmation avec le langage Python sont au programme du cours de mathématiques dans les filières générales au lycée.

Attention

Ce tutoriel ne s'adresse pas directement aux élèves, mais plutôt à leurs professeurs. Cependant, une bonne maîtrise de la lecture et des bases de l'algorithmique (c'est-à-dire un bon niveau de fin de collège) peut suffire à un élève pour tirer partie de ce site.

Ce site propose au collègues de mathématiques :

de découvrir l'esprit qui anime le langage Python ;

d'apprendre à utiliser ce langage, à un niveau suffisant pour avoir un certain recul ;

quelques exercices et activités pour les élèves.

Pour les élèves les plus faibles, il peut être souhaitable d'attendre la classe de première voire de terminale pour atteindre un niveau suffisant en algorithmique pour mieux comprendre Python, qui comporte quelques écueils (bientôt une page à ce sujet). En attendant, MicroAlg peut être un langage intermédiaire intéressant.

Note

C'est la version 3 de Python qui est présentée sur ce site, comme recommandé par l'inspection.

Débuter avec Python au lycée de Kamel Naroun et Christophe Gragnic est mis à disposition selon les termes de la licence Creative Commons Paternité - Pas d'Utilisation Commerciale - Partage des Conditions Initiales à l'Identique 3.0 Unported

# data[].attributes.attachment_link.description
Tutoriel destiné principalement aux professeurs de mathématiques, pour l'apprentissage de Python dans le cadre de l'algorithmique au programme de mathématiques du lycée (seconde, première et terminale).

# data[].attributes.attachment_link.title
Course en Cours - Revivez la finale 2018 en images

# data[].attributes.attachment_link.description
Qui a dit qu'une poule ne pourrait jamais voler ? Découvrez comment réussir ce pari fou dans cette vidéo insolite sur notre " Data Poule ". Vous apprendrez ainsi qu'en exploitant des données tout est possible !

# data[].attributes.attachment_link.description
Create a new document and edit with others at the same time -- from your computer, phone or tablet. Get stuff done with or without an internet connection. Use Docs to edit Word files. Free from Google.

# data[].attributes.attachment_link.description
Quoi de mieux pour introduire la cryptologie qu'un petit historique ? Il était une fois sur la planète bleue, dans un lointain passé :p , le désir de cacher et de chiffrer ses messages (attention, cacher fait appel à la stéganographie et chiffrer à la cryptographie !).

# data[].attributes.attachment_link.description
Tout d'abord nous allons voir la division euclidienne, ce qui va nous permettre de définir les congruences. Ensuite nous verrons les nombres premiers qui sont la base du chiffrement RSA puisque ce sont deux nombres premiers que nous avions appelés p et q qui nous permettront de calculer n.

# data[].attributes.attachment_link.readable_text
Quoi de mieux pour introduire la cryptologie qu'un petit historique ?

Il était une fois sur la planète bleue, dans un lointain passé :p , le désir de cacher et de chiffrer ses messages (attention, cacher fait appel à la stéganographie et chiffrer à la cryptographie !). Tout commença en 1900 avant J-C où un scribe égyptien employa des hiéroglyphes erronés volontairement. (Je vais griller quelques étapes ^^ ). Nous arrivons donc aux méthodes grecques et hébraïques. On notera parmi les méthodes grecques, celle de l'historien Polybe, puisque son invention inspirera le futur. La méthode est basée sur un principe de substitution avec l'utilisation d'un carré (voir ici). Toujours avec le principe de substitution, le bon vieux César y a mis sa patte. :D En effet vers 1 siècle avant J-C, César chiffre ses messages en remplaçant une lettre par une autre n place(s) après. Accélérons le temps pour faire un tour en 1919, date de parution de la machine Enigma, machine à chiffrer, qui fut employée par les nazis durant la guerre. En 1977 apparait DES, qui est succédé par AES qui lui, sera utilisé pour le chiffrement de documents aux USA. Nous touchons le but. :p Effectivement, avril 1977, RSA montre le bout de son nez. :D

Avant de poursuivre ce cours, faites un tour sur ce cours de Timothée Malossane pour faire un point sur le vocabulaire relatif à la cryptographie !

Cryptage

On trouve principalement deux grandes familles de cryptographie : la cryptographie symétrique (ou dite à clé secrète) et la cryptographie asymétrique (dite aussi à clé publique).

La cryptographie symétrique

On parle de cryptographie symétrique lorsqu'un texte, document, etc. est chiffré et déchiffré avec la même clé, la clé secrète. Ce procédé est à la fois simple et sûr. On trouvera principalement parmi les algorithmes de cryptographie symétrique AES, qui serait utilisé pour protéger des documents secrets aux États-Unis ( ici). Principal inconvénient : étant donné que l'on n'a qu'une clé, si vous la donnez à X pour qu'il puisse vous envoyer des messages chiffrés avec celle-ci, il pourra aussi bien déchiffrer tous les documents que vous avez chiffrés avec cette dernière. La clé est donc connue uniquement par le destinataire et l'émetteur et il est plus sûr de faire une clé pour un échange entre X et Y, pour éviter qu'avec une clé on puisse tout déchiffrer.

La cryptographie asymétrique

Contrairement à la cryptographie symétrique, ici avec l'asymétrique, on a 2 clés.
Tout d'abord nous avons la clé publique. Celle-ci, tout le monde peut la posséder, il n'y a aucun risque, vous pouvez la transmettre à n'importe qui. Elle sert à chiffrer le message. Puis il y a la clé privée que seul le récepteur possède, en l'occurrence vous. Elle servira à déchiffrer le message chiffré avec la clé publique.
Pour clarifier mon charabia, une petite illustration :

Devinez quoi ? RSA fait partie des algorithmes de cryptographie asymétrique ! :D

Rivest, Shamir, Adleman

Alors, vous avez remarqué ? R... S... A... ! Oui, RSA est un sigle provenant des noms de ses inventeurs, qui sont respectivement Ron Rivest, Adi Shamir et Léonard A dleman. Quelques informations tirées de Wikipédia pour situer ces personnages :

Ron Rivest est né à New York en 1947, et devient cryptologue. Adi Shamir, d'origine Israëlienne, né à Tel Aviv en 1952, est cryptologue et professeur au département de mathématiques appliquées du Weizmann Institute of Science. Il est reconnu pour ses qualités de cryptanalyste. Pour finir, Leonard Adleman, chercheur en informatique théorique et professeur en informatique et en biologie moléculaire à l'Université de la Californie du Sud, né en 1945.

Avec cette brochette de génies, on ne peut pas dire que l'algorithme RSA a été fait à la légère. ^^

Un algoquoi ?

Un algorithme, c'est une suite d'instructions visant à résoudre un problème. Dans notre cas, RSA a été créé en 1977 et breveté en 1983 par le MIT (Massachusetts Institute of Technology). Ce brevet expira le 21 septembre 2000.

Fonctionnement

Alice est retenue prisonnière dans une grotte sombre et répugnante par un ogre affamé, ses jours sont comptés, elle veut envoyer un message à Bob par pigeon voyageur pour qu'il prévienne la gendarmerie nationale.

Euh comment dire... Je veux apprendre à chiffrer avec RSA et toi tu me parles d'une grotte et d'un ogre. :o

Non, attendez, Alice va chiffrer son message à l'aide de RSA. :D
Avant que notre Alice soit prisonnière, Bob a créé une clé publique et une clé privée. Il donne la clé publique à Alice et garde soigneusement la clé privée.
Regardons de plus près le travail de Bob.
Bob crée 2 nombres p et q, les autres nombres seront trouvés grâce à eux :

La clé publique est sous la forme (e, n), celle qu'Alice possède et que tout le monde peut avoir sans aucun problème/ Ce couple permettra le chiffrement de chaque message et la clé privée qui servira au déchiffrement se présente sous la forme (d, n), celle que Bob garde précieusement.

Chiffrer un message, en théorie

Notre Alice veut envoyer un message à Bob. Elle a donc à la base un message clair (mc), et elle doit tout d'abord transformer chaque caractère en numérique (cn). Exemple : position dans l'alphabet, ASCII, etc., puis chiffrer chaque nombre pour obtenir les caractères codés (cc).
cne mod n = cc
e et n sont connus grâce à la clé publique de Bob.

Déterminer p, q, n, n, e

Bon c'est bien gentil la théorie, mais Alice commence à déprimer dans la grotte. Passons à l'action !

Voyons les calculs de Bob pour obtenir les clés et pouvoir chiffrer et déchiffrer.
Bob choisit p = 503 et q = 563, 503 et 563 sont premiers car ils ne sont divisibles que par 1 et eux-mêmes, c'est justement ce qu'il nous faut. Leur taille est plutôt petite, mais pour les explications elle suffira, pour un chiffrement fiable avec RSA, il est recommandé d'utiliser des nombres de l'ordre de 100 chiffres voir plus.
Une fois p et q généré, le reste n'est que calcul. Sans trop de difficulté, on trouve $\(n = 283189 = 503 \times 563\)$ et on se calcule vite fait bien fait $\(\varphi n = 282124 = (503-1) \times (563-1)\)$.

On trouve e par conditions, celles vu plus haut, je vous les rappelle :

$\(p,q < e < \varphi n \\ PGCD(\varphi n, e) = 1\)$

La première condition délimite une portion de nombre dans laquelle se trouve e. Avec la deuxième on teste chaque nombre compris dans cette portion. Ils sont testés avec le PGCD (plus grand commun diviseur). Il y a de fortes chances que plusieurs e soient possibles, prenez le premier trouvé. ^^ Alors que nous a choisi Bob ?
Déjà on sait que e se trouve entre 563 et 282124. On teste chaque nombre et si $\(PGCD(\varphi n, e) = 1\)$, on arrête, on dit alors que $\(\varphi n\)$ et e sont premiers entre eux. Vous êtes prêts à tester une centaine de milliers de nombres ? :D Je vous rassure, e ne se cache pas très loin :

$\(PGCD(282124, 564) = 4 \\ PGCD(282124, 565) = 1 \\ PGCD(282124, 566) = 2 \\ PGCD(282124, 567) = 1 \)$
...

Donc comme je vous ai dit, prenez le 1er venu, soit e = 565.
Bob a donc p, q, n, $\(\varphi n\)$ et e ; il va pouvoir créer la clé publique (e, n).
Clé publique de Bob : (565, 283189).
Il peut maintenant la donner à Alice et même la publier, il n'y a aucun risque.

Alice est enfermée dans un coin obscur de la grotte, pendant que l'ogre, servi par des gobelins, mange ; elle griffonne sur un bout de papier les calculs pour chiffrer avec RSA et la clé publique de Bob. :D Elle veut chiffrer le texte suivant : "Help !".
Message d'une importance capitale. :p

Coder chaque caractère en ASCII

Tout d'abord qu'est ce que l'ASCII ?
Votre ordinateur ne sait lire et sauvegarder que des données numériques. Oh la grosse quiche ! :p Donc il doit remplacer chaque caractère par un nombre, grâce à l' ASCII (American Standard Code for Information Interchange). L'ASCII est en fait une table où chaque caractère a son équivalent numérique.
Une fois votre message élaboré, la première des choses à faire est de transcrire toutes les lettres le composant en un nombre, simplement pour réussir à calculer, donc à chiffrer chacune des lettres. On peut coder les caractères en ASCII, ou alors, les remplacer par leur position dans l'alphabet, ou encore d'autres possibilités, mais le récepteur devra être au courant de la méthode utilisée.

Le message, transcrit en numérique avec l'ASCII, est donc 72 101 108 112 32 33.

Un problème d'envergure !

Imaginez un instant que l'on ait un long texte. Si ce texte venait à être chiffré, on aurait donc pour chaque caractère un nombre qui résulte du chiffrement, mais dans ce genre de texte la même lettre peut réapparaître plusieurs fois, donc aussi le nombre résultant du chiffrement de celle-ci.

Exemple :
coucou

On retrouve le c, le o et le u 2 fois. Un chiffrement potentiel pourrait donner :
105320358456105320358456

Pour une même lettre, on retrouve le même code ! Pour un texte codé d'une page si pour une même lettre on a un même code, cela pourrait compromettre sérieusement la sécurité du document puisque si l'analyse de fréquence d'apparition des lettres est utilisé, le texte peut être facilement décodé. En quoi consiste cette analyse ? Tout simplement à dire que pour la langue française en moyenne telle lettre a une fréquence d'apparition de tant de pour cent. Si on retrouve donc sur un texte de 500 mots, 50 fois le code 5489, on peut admettre grâce à cette analyse que tous les 5489 correspondent à "a" par exemple. Même principe pour "b", "c", "d", etc.

La solution est de regrouper les codes ASCII en blocs de même longueur. On leur donne d'abord à tous une longueur fixe, ici 3, en rajoutant des 0 devant si nécessaire. Cette longueur fixe sera toujours 2 ou 3 puisque le code ASCII ne contient aucun nombre avec plus de 3 chiffres. On obtient donc : 072 101 108 112 032 033

Et on les regroupe en blocs de longueur 4 :
0721 0110 8112 0320 0033

Chaque bloc doit être inférieur à n soit ici 283189.

Avec ceci on n'aura jamais un même code pour une même lettre. Par contre le destinataire devra connaître au préalable les longueurs, sinon une fois déchiffré, il ne saura pas comment découper pour retrouver l'ASCII.

On chiffre. On déchiffre. On retrouve :
072 1 0110 8 1120320 00 33
On découpe en blocs de 3.
072 101 108 112 032 000 33
Soit :
72 101 108 112 32 33
On a bien retrouvé notre ASCII.

Bon faut avouer, la méthode est fastidieuse, pour la suite du tutoriel et pour le programme, on ne l'utilisera pas pour privilégier la simplicité. ^^

Chiffrer le code ASCII

Nous allons chiffrer le code ASCII de chaque caractère du message. Ce chiffrement se fait grâce à un simple calcul, qui prend en compte le bloc, e et n qui sont présents dans la clé publique.
Formule :
Bloc e % n = cc
"%" signifie modulo (ou mod).

Maintenant, il suffit juste de chiffrer chaque bloc comme le montre la formule.

072565 % 283189 = 80488
101565 % 283189 = 2826
108565 % 283189 = 241808
112565 % 283189 = 183218
032565 % 283189 = 45154
033565 % 283189 = 84918

Chacun des résultats doit être inférieur à $\(\varphi n\)$ .

Alice a donc chiffré son message "Help !", avec la clé publique de Bob, et elle obtient : 80488 2826 241808 183218 45154 84918.
Il ne lui reste plus qu'à transmettre le message chiffré et elle aura fait ce qu'elle pouvait notre pauvre Alice. :p

Déchiffrement

À partir de maintenant, deux histoires peuvent s'écrire. Soit son message est intercepté et décrypté, soit Bob le reçoit et Alice est sauvée.

Décrypter un message, en théorie

Destinataire indésirable

Ce destinataire, une fois en possession du message, doit créer la clé privée, par le biais de la factorisation de n, puis il déchiffre chaque caractère codé (cc) et il obtient le code ASCII de chaque caractère (cn), puis il les transcrit en caractères clairs (ccl) pour obtenir le message clair.
ccd % n = cn
cn -> ccl -> mc
n connu grâce à la clé publique et d doit être calculé après la factorisation de n.

Véritable destinataire

Prenons l'exemple de Bob. Il reçoit le message chiffré, il déchiffre chaque caractère codé (cc) et il obtient le code ASCII de chaque caractère (cn), puis il les transcrit en caractères clairs (ccl) pour obtenir le message clair.
ccd % n = cn
cn -> ccl -> mc
d et n sont connus grâce à la clé privée de Bob.

Comme vous pouvez le constater, ces 2 cas sont similaires, ce qui les différencie et d'ailleurs ce qui est à l'origine de la fiabilité de RSA, c'est la factorisation de n. On va donc envisager les 2 cas. Alors, on commence par lequel ? :p

Bon, commençons par le cas où le message serait malheureusement intercepté. Admettons que ce soit un gros gobelin méchant, qui en chassant le pigeon a récupéré celui d'Alice. Comme il n'y comprend rien, il va le porter au gobelin cryptologue. :-° Celui-ci trouvera donc à l'intérieur du message les blocs chiffrés. Puisque ce n'est pas lui le destinataire, l'approche pour le décryptage sera différente. Le véritable destinataire, le créateur des clés, aurait utilisé la clé privée, mais lui devra créer la clé privée à partir de la clé publique, pour réussir à décrypter le message !
Clé privée : (d, n).
Comme n est déjà présent dans la clé publique, il reste d à trouver.
Nous avions évoqué plus haut comment l'avoir. Je vous redonne la ligne : p,q < d < n, e*d mod n = 1. Misère ! p et q, on ne les connaît pas ! Exact, mais n est le produit de 2 facteurs premiers qui sont p et q, donc la factorisation de n, nous donne p et q. Cette factorisation est longue, voire très très longue selon la taille de n et vous verrez que c'est le but recherché. On regardera ceci de plus près quelques lignes plus bas.
En factorisant n, on retrouve donc p = 503, q = 563.
Je ne vais pas détailler les calculs suivants car nous les avons déjà rencontrés plus haut.

$\(\varphi n = 282124, e = 565\)$

Déterminer d

En analysant un peu les conditions pour trouver d, on remarque que le principe est le même que pour e. On délimite tout d'abord une portion de nombre où se trouve d, d plus grand que p et q et d inférieur à n. Puis on teste les nombres compris dans cette zone avec ce calcul : $\(e \times d\,mod\,\varphi n = 1\)$ .

565 * 564 % 282124 = 566
565 * 565 % 282124 = 37101
...
565 * 140313 % 282124 = 1
565 * 140314 % 282124 = 566

Cette fois-ci, manuellement il aurait fallu passer un bon bout de temps avant de trouver d. Il vaut mieux appliquer cette méthode à un programme qui nous trouvera d. Mais il y a une autre solution bien plus rapide qui se résume à un seul calcul.

$\(d = 1÷e \, \% \, \varphi n \\ d = 1÷565 \, \% \, 282124 \\ d = 140313\)$

Cette dernière méthode est bien plus pratique.
Avec ces 2 méthodes, on peut aisément trouver d, et donc la clé privée.

Clé privée de Bob (trouvée par les méchants gobelins avec la factorisation de n) : (140313, 282124).

Déchiffrer le message
Citation : Alice

80488 / 2826 / 241808 / 183218 / 45154 / 84918

Le déchiffrement sera aussi simple que le chiffrement, une simple formule, et nous retrouverons nos blocs de départ, puis on les retranscrit en lettres grâce à la table ASCII.

Formule :
ccd % n = cn

80488140313 % 283189 = 72
2826140313 % 283189 = 101
241808140313 % 283189 = 108
183218140313 % 283189 = 112
45154140313 % 283189 = 32
84918140313 % 283189 = 33

Et voilà, le message est déchiffré, même si ce n'était pas le véritable destinataire !
Pourquoi ?
Tout simplement parce que la sureté du RSA repose sur la factorisation de n et notre n étant bien trop petit, il a été factorisé rapidement avec un factorisateur banal.

Je vais prendre un nombre semi-premier, c'est-à-dire le produit de 2 nombres premiers, soit n, du challenge RSA qui n'est plus en vigueur, mais il est encore possible d'accéder à ces nombres. C'est le RSA-576, composé de 174 chiffres :
Citation : Challenge RSA

188 198 812 920 607 963 838 697 239 461 650 439 807 163 563 379 417 382 700 763 356 422 988 859 715 234 665 485 319 060 606 504 743 045 317 388 011 303 396 716 199 692 321 205 734 031 879 550 656 996 221 305 168 759 307 650 257 059

La factorisation en image : début et fin.
Vous pouvez remarquer que fin, c'est vite dit ^^ . En fait la factorisation n'a pas abouti et je ne pouvais pas me permettre de faire tourner mon ordinateur pendant des lustres. L'algorithme de factorisation est peut-être basique mais même avec du bon matériel et un bon algorithme, cela prend quand même énormément de temps, c'est pourquoi RSA est sûr !

Le décryptage du côté de Bob, qui lui est le vrai destinataire, soit le créateur des clés privée et publique, est similaire à celui d'un destinataire indésirable, à la différence que Bob ne doit pas passer par la factorisation de n pour trouver p et q puisqu'il les a déjà.
Voilà, la force de RSA !
Il calcule d, comme vu plus haut et il peut ensuite sans problème décrypter le message d'Alice.
Bob crée donc sa clé privée : (140313, 282124).
Rien de nouveau, il va déchiffrer de la même manière que notre gobelin cryptologue. Une fois décrypté, Bob pourra sauver Alice. ^^ Houraa ! :-°

Pour un programme de décryptage, il y a donc toujours 2 cas à prendre en compte. Soit il faut factoriser n pour trouver la clé privée ou simplement demander la clé privée à l'utilisateur.

Clé de chiffrement

Dans cette partie annexe, nous allons approfondir le terme de clé et nous verrons les législations qui s'y rapportent.

Qu'est ce qu'une clé de chiffrement ?
Citation : Wikipédia

Une clé est un paramètre utilisé en entrée d'une opération cryptographique (chiffrement, déchiffrement, scellement, signature numérique, vérification de signature).
Une clé de chiffrement peut être symétrique (cryptographie symétrique) ou asymétrique (cryptographie asymétrique) : ...
Une clé peut se présenter sous plusieurs formes : mots ou phrases, procédure pour préparer une machine de chiffrement (connexions, câblage, etc. Voir machine Enigma ), données codées sous une forme binaire (cryptologie moderne).

Dans ce chapitre, nous avons travailler avec 2 clés pour un chiffrement asymétrique. Ces 2 clés étaient sous forme de chiffres, mais tout ceci a été vu plus haut. Nous allons maintenant nous intéresser à la taille d'une clé, exprimée en bits.
La taille d'une clé en bits est le nombre de bits qu'il faut pour l'écrire.
Exemple :
Ma clé est 10. Elle a donc une taille 4 bits. Puisque 10 égal en binaire 1010, il y a deux 1 et deux 0 soit 4 bits.

En cryptographie symétrique, on dira qu'il y a 24 choix pour trouver la clé, soit 16 possibilités.

En asymétrique, c'est la taille de n qui est importante, puisque c'est n qui est factorisé et qui permet donc le décryptage.
Et le nombre de possibilités de n n'est guère utile puisqu'il est donné dans la clé publique.

Exemple :
Reprenons notre n.
n = 283189 -> 1000101001000110101. Soit une taille de 19 bits, ce qui est beaucoup trop mince pour un chiffrement fiable.

Les tailles des clés utilisées en asymétrique et en symétrique ne peuvent être comparées. On utilise des tailles plus importantes pour des algorithmes comme RSA que pour DES.
Pourquoi ?
Parce que les chiffrements asymétriques reposent sur des problèmes arithmétiques, comme la factorisation pour RSA. Il est alors nécessaire que n dépasse les 1024 bits soit environ 300 chiffres, sinon la factorisation est trop rapide et le document n'est plus sécurisé.
Pour les chiffrements symétriques, étant donné qu'il n'y a qu'une clé, on utilise la méthode du brute force. Avec une clé beaucoup plus petit que n, on a quand même une sécurité fiable. Il faut un minimum de 128 bits soit 2128 possibilités, ce qui laisse déjà un petit moment au brute force pour se faire les dents. ^^

Il est possible aussi pour remédier au problème de l'échange de la clé secrète, de la chiffrer avec un chiffrement asymétrique et de chiffrer le message avec un chiffrement symétrique. Étant donné que la clé secrète est chiffrée, elle peut être envoyée sans problème au destinataire du message qui devra faire un double déchiffrement : celui de la clé et celui du message. :p

La loi

La loi du 21 juin 2004, libéralise l'utilisation des moyens de cryptographie. Cependant la fourniture de clés de déchiffrement est soumise à déclaration ou autorisation. Voir Wikipédia.

Avant de conclure, voici une petite liste de quelques outils qui pourront vous être d'une grande utilité avant d'avoir fait votre programme :

Ce chapitre est maintenant clos. J'espère avoir accompli ma noble tâche que je me suis fixée :D : vous faire comprendre clairement l'utilisation de l'algorithme RSA. D'ailleurs si j'ai oublié des points importants, n'hésitez pas à m'envoyer des MP ou à laisser un commentaire. ^^
Êtes-vous prêt à vous lancer dans l'élaboration de programmes pour RSA ? Je suis sûr que oui, alors rendez-vous à la partie suivante. :p

# data[].attributes.attachment_link.description
Quoi de mieux pour introduire la cryptologie qu'un petit historique ? Il était une fois sur la planète bleue, dans un lointain passé :p , le désir de cacher et de chiffrer ses messages (attention, cacher fait appel à la stéganographie et chiffrer à la cryptographie !).

# data[].attributes.body
# Hello World program in Python
from hashlib import sha256
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","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"]
corresp_hash= {}
x=0
for loop in range(52):
lettre= Alphabet[x]
p = lettre.encode()
le_hash= sha256(p).hexdigest()
corresp_hash[le_hash]=lettre
x=x+1
table = ["e632b7095b0bf32c260fa4c539e9fd7b852d0de454e9be26f24d0d6f91d069d3", "454349e422f05297191ead13e21d3db520e5abef52055e4964b82fb213f593a1", "65c74c15a686187bb6bbf9958f494fc6b80068034a659a9ad44991b08c58f2d2", "f67ab10ad4e4c53121b6a5fe4da9c10ddee905b978d3788d2723d7bfacbe28a9", "65c74c15a686187bb6bbf9958f494fc6b80068034a659a9ad44991b08c58f2d2", "454349e422f05297191ead13e21d3db520e5abef52055e4964b82fb213f593a1", "e3b98a4da31a127d4bde6e43033f66ba274cab0eb7eb1c70ec41402bf6273dd8"]

for i in table:
print corresp_hash [i],

# data[].attributes.body
Sinon es-que tout le monde voit anonyme?