dimanche, avril 01, 2012

L'Architecture générale su souverain cloud


À la lecture du communiqué de presse de France Telecom daté de ce matin, on comprend mieux pourquoi Dassault Systèmes se désengageait si subitement d'Orange (#) dans le projet de cloud computing français, Andromède. La conférence de presse donnée aujourd'hui par Stéphane Richard et Gervais Pellissier, accompagnés de l'ingénieur de recherche hors classe des Télécommunications Thérèse Ponsable du Matos, lève en effet le voile sur l'architecture technique finalement retenue pour Andromède. Après le salut au drapeau, Mme Ponsable a déclaré liminairement que c'est avec « fierté que nous annonçons une avancée technologique à la hauteur des enjeux d'Andromède : de ne pas laisser à des acteurs non européens l'accès aux données stratégiques des entreprises françaises et européennes et de leur transférer la responsabilité de la sécurité et de la fiabilité de nos systèmes ».



D'après France Telecom, les choix techniques réalisés « permettront à Andromède de concevoir, bâtir et opérer une infrastructure de "centrale numérique" de confiance et sécurisée, au service de la compétitivité de l'économie et de la société française, à vocation européenne ». À ces fins, l'infrastructure proposée aujourd'hui, sur laquelle les 135 millions d'euros issus du Grand Emprunt sont engagés par la Caisse des dépôts et consignations, prend le contre-pied complet des standards et des protocoles d'Internet, perçus comme n'offrant pas le niveau de confiance et de sécurité — voir les derniers déboires de RSA et https dans l'étude d'Arjen Lenstra (#) publiée en février dernier — jugés indispensables au maintien de la souveraineté nationale. Le communiqué de presse original est ensuite particulièrement technique. Nous allons essayer de rendre compte brièvement des deux grands composants du cloud Andromède annoncé.



Architecture technique de l'infrastructure. Cette toute nouvelle infrastructure, TRANSPAF (Transmission par paquets français) est donc un réseau public de données à commutation par paquets utilisant la technique du circuit virtuel :




  • Si un terminal souhaite émettre un appel ou transférer des données, il transmet une séquence, le tirynthe (tirage random-y du numéro théorique) ;

  • Cette séquence, d'un format bien déterminé, le trimètre iambique, est appelée demande d'appel ; elle provoque la constitution, de proche en proche dans le nuage jusqu'au terminal appelé, d'un chemin logique.

  • L'établissement de ce circuit virtuel correspond au marquage de l'itinéraire, également appelé O10C en référence au jeu de caractères de l'alphabet international n° 5. Il réserve les mémoires tampons dans chaque commutateur traversé.

  • Si le terminal appelé accepte la communication (et bien sûr qu'il est situé de plein droit en territoire de la République française), il transmet en retour un paquet de confirmation d'appel qui effectue la même opération dans l'autre sens de transmission.

  • Ensuite les données peuvent être échangées sous forme de paquets entrelacés (les pacs), assemblés et triés à l'arrivée.



Les fonctions assurées par le commutateur TRANSPAF, familièrement appelés le pouzin — avec une certaine irrévérence doit-on ajouter —, se répartissent en deux catégories :




  • les fonctions de commande, relativement complexes, mais peu fréquentes ;

  • les fonctions de commutation, plus simples mais répétitives.



Les premières font appel à un calculateur d'usage général d'occasion, le Mitra Stictica 15 (#), les secondes à un matériel spécialisé, la CP50 (Cetus-Persée 50), comprenant des processeurs rapides avec un temps de cycle de 250 nanosecondes. Unités de commandes et processeurs sont redondants et mis en relation par un bus temporel double, sur lequel la vitesse de transmission est de quelques bauds, lorsqu'on ne déplore pas d'incident de voyageur grave ni qu'on ne prie d'excuser la gêne occasionnée. Notons que France Telecom annonce également, à cette occasion, le rachat total de la Manufacture belge de lampes électriques à Vishay (#) par échange de titres.



Dans sa configuration maximale, un pouzin TRANSPAF comprend deux Mitra Stictica 15 et seize modules de commutation permettant chacun le raccordement de 496 lignes (30 adaptateurs de 8 lignes synchrones et deux unités de 128 lignes asynchrones). Le cloud est organisé en deux niveaux : le commutateurs nodaux (CMN) qui constituent un réseau maillé, joliment nommé l'électryon, et les commutateurs locaux (CML) auxquels sont raccordés les abonnés à Andromède. Pour la gestion du cloud on trouve également deux niveaux : un point de contrôle local (PCL) — chargement des programmes et des tables de routage, enregistrement des données d'alarme — établissement sous la responsabilité d'un fusilier marin aposté, et deux centres de gestion (CG) au niveau national — centralisation des statistiques et des données de taxation, mise à jour des tables d'acheminement, reprise des fonctions des PCL la nuit et en cas de défaillance — l'un dans le bunker souterrain de l'Hadopi (#), rue du Teletexel, l'autre dans la champignonnière de l'ANSSI.



Protocoles, codages et standards des services. Mais là n'est pas tant la véritable innovation qu'apporte la solution Andromède mais que plutôt dans l'audacieux pari technique du terminal français du cloud national, le Gorgophone (#). Mme Ponsable rappelle en effet que dans le cadre du « programme d'actions pour diffuser les usages du web 2.0 dans les entreprises », l'Etat veut favoriser en France le développement de nouveaux usages autour des technologies numériques en général, et du cloud computing en particulier. Il sera lancé dès le second trimestre 2012 une vaste campagne d'équipement de toutes les entreprises françaises au REE de l'INSEE (#) d'un Gorgophone à usage souverain, garant du patriotisme économique (#), sésame pour l'obtention du Label « Origine française garantie » (#) pour les produits et services numériques.



Le Gorgophone est un terminal téléinformatique compact et autonome, hautement sécurisé, qui permet la visualisation sur un écran et l'émission de données à partir d'un clavier. Il offre deux standards, le standard Téléinformatique (#) historique et le standard TELECLOUNE (Télétransmission au Cloud National), inédit et pensé d'emblée pour le cloud Andromède.



Le standard TELECLOUNE possède deux modes de fonctionnement qui diffèrent par l'interprétation des codes et séquences reçues pour l'affichage. Le mode cloudotex permet l'exploitation du Gorgophone dans un format de 25 rangées de 40 colonnes avec un décodage conforme au Profil 2 de la norme CEPT (#) ; le mode mixte permet l'exploitation du terminal dans un format de 25 rangées de 80 colonnes avec décodage respectant la norme ISO 6429 (#). (Seule concession, bénigne somme toute, à l'honni impérialisme américain, ce second mode ainsi que le standard Téléinformatique du Gorgophone permettent d'exploiter des serveurs ASCII historiques.) L'architecture du Gorgophone se compose de quatre sous-modules regroupant éléments physiques et logiciels :




  • le module écran,

  • le module clavier,

  • le module modem, qui assure la transmission entre le terminal et les services cloud,

  • le module prise péri-informatique qui assure la transmission des données entre le Gorgophone et les périphériques (imprimantes, lecteurs de cartes de crédit, bracelets électroniques, shocker-tasers, roue de Wimshurst, calculateurs Curta Type I et Addiator Faber Castell, JR01 de Chamecki, etc.)



Dans le standard TELECLOUNE l'ensemble de ces modules est géré par le logiciel protocolaire centralisé, Mestor, qui est à l'ATTILA 1 ce que le Mescla 2 est au PARNASSE 3. Le Mestor est écrit dans le langage de programmation Unlambda (#) spécialement mis au point à l'ENS pour le Gorgophone, le langage PAPE ayant été abandonné depuis le Concordat.



En se connectant directement au PAD-X3 (assembleur/désassembleur de paquets à la norme X3 #) le Gorgophone, asynchrone, peut ainsi être rattaché au cloud TRANSPAF. Le contrôle du bon fonctionnement du terminal est simplifié : vérifier que la lettre F (France !) s'affiche sur l'écran, sur fond bleu-blanc-rouge, après la mise sous tension du Gorgophone, et test de la connexion par appui sur la touche « Connexion/Fin » sur réception de la porteuse d'Andromède — les douze premières mesures de « La Marseillaise » en fréquences vocales (#) — provoquant alors le remplacement de la lettre F par la lettre C (Camembert !).



Une page-écran, conforme aux caractéristiques de visualisation retenues par TELECLOUNE, est transmise sous une forme codée qui est volontairement incompatible avec HTML5, d'un cosmopolitisme inacceptable au regard de la souveraineté du cloud. Le vocabulaire, empruntant à la langue française sa limpidité et sa concision, est constitué de 128 codes conformes à la version de référence de l'alphabet international n°5 (#), chacun représenté par un mot de 7 bits et un bit de parité. Les lettres accentuées sont désignées par une combinaison de trois codes, les lettres spéciales (avec ligatures) et les symboles semi-graphiques sont codés par des séquences spéciales. Tous les entiers sont évidemment représentés par des entiers de Church (#) en Unlambda — ainsi le code « Sep », 03, est logiquement ``s``s`ksk``s``s`kski dans Mestor, par exemple.



Au plan logiciel, la translitération de TELECLOUNE vers TRANSPAF est un proof-carrying code (#) de Marti-Maury, exécuté sur le PAD-X3. Le PAD-X3 comprend un HSM (Hardware Security Module) fourni par Thales (#) pour l'exécution de cet algorithme sensible. Le programme de translitération a été entièrement réécrit en Maldecrane, un langage de programmation, dérivé tout spécialement de Brainfuck (#), qui comporte huit commandes seulement, chacune représentée par un caractère (1,l,|,i,!,',I et :) — avec lequel le programme classique « Hello World » s'écrit sous la forme particulièrement naturelle : llllllllll1:lllllll:llllllllll:lll:liiii!|:ll':l'lllllll''lll':ll'iilllllllllllllll':'lll'!!!!!!'!!!!!!!!':l':', par exemple. Le Gorgophone et l'accès du Gorgophone au cloud Andromède sont ainsi totalement sécurisés, les certificats de l'infrastructure à clés publiques étant distribués et gérés au niveau national des CG évoqués plus haut.



Un avenir radieux. À la fin de la conférence de presse, mon voisin, tabulateur surnuméraire au Ministère de l'Enregistrement, utilisateur ayant son ETEBAC (#) depuis des décennies me faisait remarquer d'un ton goguenard : qui, en effet, peut encore croire à la fin programmée de Transpac et du Minitel, d'abord annoncée par France Telecom pour septembre dernier et sans cesse discrètement repoussée, (aujourd'hui à juin 2012 #) ; qui donc sait quel avenir radieux le cloud nous réserve ?




Notes :


1 Analyseur de Trafic Téléphonique Intégré pour Ligne d'Abonné





2 Mesure et ESsais Centralisés sur Ligne d'Abonné





3 Programme d'Admissibilité d'un Réseau Numérique et Analogique Soumis à une SEcurisation




dimanche, mars 18, 2012

De la causalité dans le Prix Turing


Le prix Turing vient d'être décerné, pour l'année 2011, au professeur Judea Pearl, l'un des plus brillants représentants de ces chercheurs qui, défrichant hardiment les frontières traditionnellement établies entre disciplines scientifiques, mathématicien, philosophe et informaticien, firent les grandes heures des disciplines fondatrices de l'Intelligence artificielle. Il est d'usage de rappeler qu'il avait été tristement tiré de la discrétion rigoureuse et savante de ses travaux fondamentaux du Cognitive Systems Laboratory à UCLA par le tragique assassinat de son fils, Daniel Pearl, journaliste au Wall Street Journal, par des terroristes en 2002. Sa stature publique, comme président de la Fondation Daniel Pearl, est devenue une inspiration et un modèle d'humanisme pour la compréhension mutuelle entre cultures.

 



Au plan scientifique, Judea Pearl s'est attaqué à des questions d'ampleur monumentale : raisonnement, heuristique, inférence, causalité, qu'il examine à la fois en philosophe, en logicien parfaitement au fait des travaux de re-fondation des mathématiques du XXe siècle — de Whitehead et Russell à Rosser, Curry et Church, de Quine et Kleene à Suppes, de Tarski et Łukasiewicz à Kolmogorov et Markov tant ses travaux touchent aux fondements théoriques de la représentation de la pensée — et en programmeur et architecte informatique, concepteur d'algorithmes dont, au fil du temps, l'importance est devenue cruciale aux yeux de tous les géants du Web, collecteurs et analystes du Big Data. Le fil conducteur de ses travaux de recherche a élevé le raisonnement probabiliste au rang d'outil, à la fois fondamental et pratique, de modélisation de la relation de cause à effet. Quoi de plus naturel, en effet, pour un jeune chercheur du tout début des années 1980 que d'explorer la possibilité de dégager les relations causales de la moraine de faits charriés par les données brutes — une question proprement philosophique jusqu'alors et que l'on peut faire remonter au moins jusqu'à David Hume et son Treaty on Human Nature — avec les moyens neufs et les méthodes appliquées de la programmation alors naissante ?

 



Pearl est généralement reconnu comme inventeur du terme « réseau Bayesien » pour désigner ces constructions mathématiques qui jettent des passerelles entre théorie des graphes et relations de dépendance probabilistes. En particulier, il a conduit de succès en succès l'approche consistant à chercher dans le puzzle des données des motifs partiels d'indépendance conditionnelle, révélateurs d'une structure causale sous-jacente, et à en assembler les pièces en un modèle causal cohérent — une méthodologie bottom-up poursuivie en parallèle à UCLA et à CMU — en contraste avec les « Bayesiens puritains » de Stanford qui, posant d'emblée un modèle causal Bayesien (top-down), exploitent les données pour calibrer les probabilités a posteriori associées aux diverses structures causales candidates à la modélisation des faits. Les deux variantes de l'automatisation de la découverte des relations de cause à effet reviennent aujourd'hui au coeur même de la farouche concurrence des grands acteurs du Web.

 



Une incise : l'actualité récente dans le domaine des moteurs de recherche l'illustre parfaitement. Alors que Siri (#), l'assistant personnel de l'iPhone d'Apple, est annonciateur d'une évolution notable de l'usage des moteurs de recherches et, partant, du modèle économique prévalent actuellement, qui est phagocyté par Google pour le classement et la publicité en ligne, et que Watson d'IBM (#) est utilisé aux mêmes fins d'amélioration du service rendu à l'utilisateur chez Citi Group (#), les modèles causaux et leurs applications « sémantiques » attirent soudain les feux des projecteurs. Google est là empêtré dans la lutte contre les effets de bords de son algorithme de classement, se trouvant aujourd'hui contraint de « surtaxer » les pages jugées trop riches d'optimisation (#) — une idée savoureuse à l'heure préélectorale bien sombre où les candidats, unanimes et pitoyables de jalousie peccamineuse devant les réussites économiques, rivalisent bruyamment dans l'escalade fiscale confiscatoire à faire rendre gorge à l'Hydre du succès financier, décidément immoral et inacceptable ici, songent derechef à aboyer contre l'impérialisme numérique cosmopolite par le nouvel octroi d'une « Taxe Google » (#). La révélation, la semaine dernière (#), que les prochaines moutures du moteur de recherche ne se contenteront plus de fournir des liens aux requêtes des utilisateurs, mais s'inspirant de ses devanciers Siri, Wolfram Alpha (#) et Bing de Microsoft — chez qui l'équipe arrivée avec l'acquisition en 2007 de Medstory (#) a profondément transformé et enrichi l'algorithme de recherche — mais calculeront directement les réponses aux questions des internautes.

 



Afin d'aboutir à un modèle causal, Pearl part des premiers principes et de constatations élémentaires : d'une part, l'analyse purement statistique des données ne met en évidence que des covariations de variables sans impliquer logiquement de relation de cause à effet entre elles ; d'autre part, la plupart des formalisations de cette relation, en accord avec l'intuition naïve, invoquent une précédence temporelle entre la cause et l'effet. Hans Reichenbach, l'un des premiers membres du Cercle de Vienne, avait concrétisé ce point dans la notion de « cause commune » (#) dans son livre The Direction of Time publié en 1956 : des événements simultanés corrélés doivent avoir des causes communes antécédentes. Le besoin de formaliser cette idée, somme toute conforme au bon sens, s'était fait sentir au début du XXe siècle dans les cercles des physiciens pressés à l'étude du bouleversement simultané de la théorie de la Relativité d'Albert Einstein et de la Mécanique quantique, dans lesquelles la causalité perdait la netteté des contours que les définitions de la physique classique lui attribuaient jusqu'alors. La nécessité d'une formalisation de la causalité s'exportait alors au domaine de la logique mathématique, dont cette physique du début du XXe siècle avait remis l'importance au premier plan. Patrick Suppes (#), dans A Probabilistic Theory of Causality (1970) donne ainsi une version formelle en logique mathématique de la causalité. Mais l'information de succession temporelle seule ne permet pas non plus de distinguer entre des causes authentiques et des attributions fallacieuses de relation de cause à effet dues à des facteurs inconnus. (Le baromètre baisse avant l'averse mais cette baisse ne cause évidemment pas la pluie.)

 



Cette critique se trouvait déjà développée avec force dans une oeuvre tout à fait inattendue et bien méconnue, celles des Cahiers de Paul Valery. Plus connu comme poète que comme essayiste, Paul Valery s'attablait cependant, au petit matin, tous les jours de 1894 jusqu'à sa disparition en 1945, pour rédiger ce qui constitue 262 cahiers de notes serrées qui font de lui un systémicien pionnier avant la lettre. S'interrogeant lui-même sur les mécanismes les plus profonds de la pensée et du raisonnement — sujets qui, à le lire, bien loin des méthodes de la psychanalyse freudienne à vocation généraliste, le passionnent personnellement — il jette dans cette extraordinaire somme critique les bases que l'on retrouvera chez les premiers théoriciens des systèmes et de la cybernétique, de Ludwig von Bertalanffy à Heinz von Foerster, passeur vers le constructivisme radical de Ernst von Glasersfeld disparu fin 2010. Il illustre une veine psychologique dans la compréhension des possibilités de mécanisation de la pensée. Sous sa plume prémonitoire on lit, par exemple :

 





« Ce qui embrouille l'affaire du libre-arbitre, c'est la manie de regarder la série des événements comme linéaire selon l'antique type des causes et effets. Mais le moindre phénomène physique montre déjà une pluralité inextricable de constituants. »

 




C'est cet écheveau inextricable que les travaux de Pearl vont démêler.

Un mot encore sur le contexte des recherches de Pearl. La tâche de modélisation causale y est vue comme un jeu, au sens de la théorie probabiliste des jeux, que le scientifique joue contre la Nature. (Bien que, fameusement selon Einstein, elle ne joue pas aux dés.) Dans A Statistical Semantics for Causation (#), on pose que la Nature se caractérise par un mécanisme stable de causalité qui est descriptible par des relations fonctionnelles déterministes entre variables, dont certaines ne sont pas observables. La logique mathématique capture ces postulats sous la forme d'un graphe sans cycles que le scientifique s'efforce de reconstituer à partir des observations. Ce graphe orienté acyclique (DAG dans l'acronymne anglais directed acyclic graph) est nommé structure causale. Elle sert de spécification, de substrat au modèle causal qui, quant à lui, décrit précisément comment chacune des variables dépend effectivement des variables antécédentes dans la graphe de la structure causale. Une fois que le modèle causal est formé, il définit de facto une distribution de probabilités sur toutes les variables du système. Celle ci reflète évidemment les caractéristiques de la structure sous-jacente : chaque variable est, par exemple, indépendante de ses non-descendants dans le graphe, conditionnellement à ses antécédents immédiats (ce qui rend le modèle markovien en général). La Nature permet au scientifique d'observer un sous-ensemble incomplet des variables et d'étudier leur distribution de probabilités restreinte à ce sous-ensemble. La question que Pearl a résolu par l'affirmative est celle de la possibilité de reconstituer l'ensemble de la structure causale et du modèle à partir de ces observations fragmentaires de relations probabilistes locales entre quelques variables (#).

 



Comme un nombre illimité de modèles causaux peuvent engendrer la même distribution, variant chacun dans leurs ensembles de variables cachées et dans la forme des relations entre variables observées, il s'agit de les classer pour ne considérer que les extrêmes (premier ou dernier suivant ce classement), les modèles dits minimaux. Et là, comme l'avait observé à nouveau le précurseur Valery :

 





« Cependant l'idée de cause ne peut être totalement rejetée car il est bien difficile de s'en passer durant un raisonnement. Il faut alors lui reconnaître son caractère relatif et surtout subjectif et anthropomorphique. »

 




Pearl doit reparler de l'observateur humain qu'il avait escamoté dans ses axiomes. L'heuristique de classement mise en avant dans la théorie de la causalité de Pearl est celle du « Rasoir d'Occam » dont le moins que l'on puisse dire est que son statut dans la philosophie occidentale est complexe. Les modèles causaux minimaux sont ainsi les plus parcimonieux, les plus « simples ». Paul Valery, à nouveau :



« Et en somme quand la question de cause se pose, c'est en réalité quand on cherche une cause non connue, non donnée, qui satisfasse ma question, bien plus qu'au phénomène. »

 




(Voilà donc avec près d'un siècle d'avance, le marketing des communiqués de presse de Google sous la plume introspective d'un poète !)



« La preuve en est que la recherche des causes et la cause reconnue sont limitées tandis que les vraies conditions du phénomène s'étendent où l'on voudra. La cause est donc une réponse; elle n'est pas ce qui fait le phénomène. Déterminer la cause d'un phénomène, c'est choisir entre tous les phénomènes que suppose celui-ci, l'un d'eux. Ce qui détermine ce choix est distinct du phénomène à expliquer et est distinct du choix lui-même. »

 




La subjectivité refait surface immédiatement et la notion de cause, même formalisée, ne peut ainsi faire l'économie de l'observateur humain. Mais pour tenir éloignée la perspective d'une subjectivité de l'observateur englobant au final toute la théorie, Pearl introduit la notion de modèle causal stable, i.e. dont les relations d'indépendances conditionnelles ne sont pas détruites par des variations des paramètres de la distribution de probabilité.

Au passage, notons qu'une alternative à la stabilité de Pearl pour injecter une dose d'objectivité — ou réduire l'indéterminisme — pourrait être de faire appel à une forme de crowdsourcing, à la façon de Clay Shirky (#), dans le choix des modèles causaux comme dans le récent projet expérimental OpenProof (#).

 



D'ailleurs, contrairement à ce que laisserait penser l'aridité technique de la présentation de Pearl, les notions naïves ne tardent pas non plus à se réintroduire subrepticement dans la théorie. Comme mentionné plus haut, le discours humain naturel sur les explications causales doit, pour être recevable, satisfaire à deux sortes d'attentes : statistiques et temporelles. Devant la pérennité de ces exigences du discours explicatif durant des siècles d'observation scientifique, Pearl enrichit son modèle causal de la notion de temps statistique : tout ordonnancement des variables conforme à l'un au moins des modèles causaux minimaux. Enfin on réconcilie la physique et le modèle théorique en conjecturant un biais temporel, à savoir que dans la plupart des phénomènes naturels, le temps physique coïncide avec au moins un des temps statistiques du modèle. Valery encore le formulait de façon lapidaire dans une merveilleuse concision :

 





« Le déterminisme est la seule manière de se représenter le monde. Et l'indéterminisme, la seule manière d'y exister. » (1915)

 




Les hypothèses de minimalité et de stabilité permirent à Pearl de mettre au point un algorithme de récupération du modèle et de la structure causaux à partir des observations — IC pour Inductive Causation — devenu la pierre angulaire d'innombrables déclinaisons en analyse des données, en business intelligence et data mining, dans le traitement du langage naturel, dans les analyses sémantiques, dans la représentation des connaissances, et, plus récemment dans le vif renouveau de la théorie des graphes à la suite d'Albert-László Barabási (#), de Duncan Watts et Steven Strogatz (#), de Béla Bollobás (#) — sur lesquels plane l'ombre tutélaire de Paul (Pál) Erdős — dans le contexte des applications Web et du Big Data.

Après Leslie Valiant l'année dernière, le Prix Turing ne serait-il pas en train de signer l'avènement d'un nouvel âge de l'Intelligence artificielle ?

 



vendredi, février 24, 2012

La Tragédie des facteurs communs


X.509 (#) est un standard de l'ITU Telecommunication Standardization Sector pour les infrastructures à clés publiques. (Il est également parfois employé dans les infrastructure de gestion de privilèges pour le traitement des autorisations.) Dans cette norme, un certificat garantit l'association d'une clé publique à une entité nommée et identifiée. Les certificats sont délivrés par des autorités de certification qui peuvent dépendre les unes des autres dans une forme hiérarchique. Les navigateurs du marché sont livrés, par exemple, avec un certain nombre de certificats des autorités « racines » pré-installés de façon à ce que les certificats SSL des éditeurs et des fournisseurs de services soient immédiatement reconnus.

 



OpenPGP(#) est un autre dispositif populaire sur Internet pour chiffrer les échanges et authentifier les messages. Il fonctionne sans hiérarchie d'autorités de certifications, comme celles du standard X.509, et met également en oeuvre un chiffrement symétrique à clés publiques.

 



Les clés publiques sont donc devenues avec la généralisation des infrastructures de sécurité — que l'on pense aux protocoles SSL/TLS (#) et HTTPS (#), par exemple — l'épine dorsale du e-commerce, du paiement des transactions en ligne, de l'authentification des utilisateurs de services Web mais également de toutes les télécommunications, via leur rôle dans les routeurs, les équipements de télécommunications, les cartes à puces et les lecteurs, et dans la prolifération envahissante des devices connectés qui nous submerge.

 



Une cladistique des clés publiques. À première vue, ces clés publiques sont d'apparence bien modeste au regard de l'importance qu'elles ont prise aujourd'hui dans tous les secteurs de l'économie numérique : ce ne sont, après tout, que des nombres entiers, si connus et ressasses qu'on les dit « naturels ». Mais, pas de méprise ! Ces entiers ne sont point les chétives créatures qu'ils paraissent à l'oeil non averti...

 



Le naturaliste arithméticien porté sur la cryptographie distingue ainsi dans la zoologie des clés publiques quelques clades particulièrement intéressants. Les modules RSA, peut-être les plus populaires et les plus connus — nommés d'après Ron Rivest, Adi Shamir et Leonard Adleman en 1978 (#) — sont des nombres entiers qui sont le produit de deux très grands nombres premiers : n = pq, où p et q représentent ces très grands nombres premiers. La robustesse de RSA repose sur la difficulté que représente la factorisation de n : c'est-à-dire l'effort de calcul nécessaire pour déterminer p et q connaissant n. C'est un problème pour lequel on ne connaît pas à ce jour d'algorithme en temps polynomial. Dans l'infrastructure à clés publiques RSA, le message M est chiffré en calculant Me [n], M porté à la puissance e, modulo n, la clé publique du destinataire. (On suppose que tous les messages sont au final codés comme des entiers, ou des blocs d'entiers.) Le destinataire, seul à connaître les fameux très grands nombres premiers p et q du module RSA, est donc seul à posséder la clé privée d qui lui permet de déchiffrer le message crypté Me. En effet, connaissant p et q, d et e ont été choisis tels que ed - 1 soit divisible par (p - 1)(q - 1) ; du coup, pour déchiffrer on élève à nouveau le message crypté à la puissance d modulo n et l'on obtient Med qui n'est autre que M lui-même modulo n. (Cette dernière identification miraculeuse est due au Petit théorème de Fermat (#), l'autre gus de Montauban, notre arithméticien national plus fameux par son grand théorème, dit aussi le dernier, démontré il y a quelques années (#) par Andrew Wiles.)

 



Dans cette cladistique des clés publiques on trouve également les clés El Gamal (#) qui en appellent à l'imposante théorie algébrique des nombres. Cette fois la clé est constituée de trois entiers : p un nombre premier, g un générateur du groupe des entiers modulo p, et y un entier (public) tel que y = gxx, un entier strictement inférieur à p - 1, est la clé privée.

 



D'autres clés publiques sont utilisées pour la signature numérique ou DSA (Digital Signature Algorithm) défini dans les standards du FIPS (FIPS 186-3) promulgués par le gouvernement américain. La clé publique DSA est un quadruplet (p, q, g, y) dans lequel p et q sont des nombres premiers tels que q divise p - 1, g est un générateur d'un sous-groupe d'ordre q du groupe des entiers positifs modulo p et, comme dans le El Gamal, y = gxx, un entier strictement inférieur à q, est la clé privée.

 



Enfin on trouve également les clé publiques basées sur les courbes elliptiques (#) depuis les premiers travaux de Miller en 1985, dont je vous ferai grâce des détails puisque, vaillant lecteur, vous êtes malgré tout parvenu jusqu'ici !

 



De la poliorcétique des clés publiques. Inutile de dire que ces clés publiques ont été, depuis la publication des premiers algorithmes de chiffrement, l'objet d'attaques innombrables et furieuses tant des mathématiciens intéressés à la démonstration de leur robustesse que des hackers sublimés par l'exploit et la gloire du cassage des infrastructures de sécurité. Dans l'ensemble, cependant, le secret RSA — pour prendre le plus répandu — est plutôt bien gardé (#) et les ingénieux algorithmes de décomposition en facteurs premiers lancés à son assaut n'ont pas encore fait tomber la forteresse.

 



Il est difficile de résister ici à la tentation de mentionner quelques uns de ces algorithmes qui sont de véritables petits bijoux calculatoires (#). Par exemple, le crible algébrique (GNFS General Number Field Sieve) est un algorithme, fondé sur l'arithmétique modulaire particulièrement efficace pour la décomposition en facteurs premiers. L'algorithme de décomposition par fractions continues (#) plus ancien est toujours efficace, mais on lui préfère le crible quadratique de Pomerance (#) qui en 1990 établit un record en décomposant un nombre de 116 chiffres — en 1994, il décomposait un module RSA de 129 chiffres, premier d'une longue série de réussites des hussards de l'agèbre modulaire à l'assaut de la forteresse RSA : le dernier en date, en 2009, étant la décomposition d'un module RSA long de 768 bits (#) rendant aujourd'hui préférable le choix de clé de 1 024, voire 2 048 bits, dans les infrastructures PKI. Les algorithmes de Pollard (#) et de Williams, dont dérive le GNFS, établirent les records ultérieurs et furent employés dans les premières recherches de facteurs premiers réparties sur un très grand nombre de machines — technique de parallélisation maintenant très souvent employée pour l'analyse de très grands volumes de données en météorologie, en génétique, en astronomie, souvent via de simples économiseurs d'écrans proposés en libre chargement. Son titre de gloire fut la factorisation en 1993 (#) du neuvième nombre de Fermat — encore lui ! —
2512 + 1. Citons encore l'imprononçable SQUFOF (Square Form Factorization) de Daniel Shanks (#), et la factorisation par utilisation de courbes elliptiques (#) de Lenstra dans cette revue superficielle de l'attirail guerrier du cryptographe.

 



Si les modules RSA résistent encore c'est que sous leur frêle constitution de simple produit d'entiers, leur robustesse réside dans un choix des facteurs premiers p et q bien loin d'être innocent. La génération des clés pour les algorithmes comme RSA et ceux mentionnés précédemment est méticuleusement spécifiée dans plusieurs standards comme PKCS, IEEE 1363-2000, FIPS 186-3, ANSI X9.44 et ISO/IEC 18033-2, pour précisément résister aux attaques connues et anticipées. Cependant, première ombre au tableau réel qui s'annonce moins idyllique que le satisfecit irénique qui, semble-t-il, prévaut aujourd'hui, à l'examen approfondi (#) ces standards bien intentionnés diffèrent substantiellement les uns des autres. Cette diversité semblerait indiquer qu'il existe un consensus autour de l'idée que la robustesse d'un module RSA ne dépendrait pas nécessairement de l'exactitude de l'algorithme de génération. Et, de fait, on peut imaginer plusieurs processus de construction des modules RSA : construction théorique (#) — où p < q < rp pour r > 1 — ; construction simple décrite dans les standards et dans certaines implémentations comme OpenSSL, GnuPG et la librairie crypto de GNU, dans laquelle p et q sont choisis dans des intervalles donnés ; construction algorithmique dans laquelle, une fois choisi p, un calcul détermine q, pour que le produit tombe dans un intervalle choisi à l'avance. L'analyse de ces constructions démontre en effet que si la factorisation est dure (en temps non polynomial) celle des modules RSA uniformément construits par ces processus l'est également, ce qui serait donc plutôt positif. L'analyse des implémentations existantes, en revanche, montre qu'aucune d'entre elles (GNU crypto, GnuPG, OpenSSL, Openswan) ne suit exactement les standards en question (PKCS, IEEE 1363-2000, FIPS 186-3, RSA-OAEP, IEEE 1363-2000, NESSIE), avec pour résultat net que certaines implémentations et certains standards engendrent ces modules RSA de façon non uniforme. La non-uniformité, rappelons-le, ne met pas a priori en danger la sécurité des modules RSA, i.e la difficulté de leur factorisation qui est leur utime rempart, mais peut avoir un impact plus subtil qui vient d'être brutalement démontré par deux études de la population des clés publiques in vivo.

 



L'ethnologie des clés publiques. Sur ces considérations, somme toute relativement rassurantes, deux papiers récemment publiés — l'un à la conférence IMC 2011 (#), en novembre dernier à Berlin, par une équipe de TU München (#) ; l'autre dans l'ePrint Archive, mi-février 2012, par une équipe de l'EPFL (#) — distillent un troublant sentiment de panique. Ces ethnologues numériques ramènent des nouvelles bien inquiétantes de leurs études in vivo des clés publiques et des certificats X.509 tels qu'ils sont aujourd'hui utilisés dans leur habitat naturel Internet.

 



Tels des Dian Fossey de l'arithmétique, l'équipe de la TU München a vécu plus de 18 mois en compagnie de certificats X.509 sauvages, dans leur milieu Internet naturel, collectant des données depuis le premier million de sites Web les plus populaires dans le classement d'Alexa (#) et écoutant plus de 250 millions de sessions SSL/TLS sur le réseau universitaire allemand servant 120.000 personnes. Les résultats sont édifiants : l'infrastructure de certification X.509 actuellement en ligne se trouve dans un état avancé de détérioration.

 



Le pourcentage de certificats qui ne déclencheraient pas d'avertissement à l'utilisateur chez un client utilisant le référentiel racine de Mozilla (#) — qui a pourtant du pas mal grossir ces dernières années — ne dépasse par un très faible niveau de 18 %. Ce faible niveau de conformité s'explique par le très grand nombre de chaînes de validation incorrectes (40 % de tous les certificats vus !) et l'encore plus grand nombre de noms d'hôte incorrects ou manquants dans le certificat — ce qui contredit l'utilité et l'existence même d'un certificat en premier lieu ! Autres problèmes récurrents, les dates de validité des certificats depuis longtemps expirées, les certificats « escrocs » sans autorité racine, et le très grand nombre de certificats partagés par des entités sans relation entre elles (menant au problème d'usurpation d'identité, par exemple). Bref, un constat de déliquescence bien loin de la netteté chirurgicale du dispositif in vitro des spécifications des organismes de standardisation.

 



Mais ce n'est pas tout ! La seconde étude ethnologique de l'EPFL qui, quant à elle, a collecté plus de 11 millions de clés publiques par des scans d'un grand nombre d'hôtes Internet et en analysant le nouvel Observatoire du SSL (#) récemment mis en ligne par l'Electronic Frontier Foundation bat en brèche la belle assurance des arithméticiens modulaires.

 



Les 11,7 millions de clés publiques vues contiennent 6,4 millions de modules RSA distincts ; le reste est réparti entre clés El Gamal et clés DSA — une seule clé ECDSA repérée, un hapax. On y lit encore les scories de la dévastation due à la vulnérabilité de l'OpenSSL Debian de 2009 (#). Notée en mai 2008, une erreur de jugement avait conduit à retirer une seule ligne de code du générateur de nombre pseudo-aléatoire du paquetage OpenSSL dans la distribution Debian. Cette suppression entraînait une insuffisance d'entropie dans l'initialisation du générateur — à chaque usage — dont les nombres aléatoires ne devenaient plus aussi imprévisibles que théoriquement prévu, et qui, en conséquence, compromettait toutes les clés publiques engendrées sur les distributions dérivées de Debian, entre septembre 2006 et mai 2008. Par ricochet tous les systèmes, même non Debian, qui auraient utilisés des clés engendrées par l'OpenSSL Debian courraient de ce fait le risque d'être infectés et d'avoir été compromis. Épidémie majeure de compromission potentielle des transmissions et des échanges d'autant plus dangereuse qu'elle est largement sourde et invisible du grand public ! Ces clés furent blacklistées (#) et ces listes diffusées dans toutes les installations avec les mises à jour. Mais ces clés faibles circulent toujours aujourd'hui, leur proportion (0,3 %) est en baisse depuis 2009.

 



Ces modules RSA uniques, une fois collectés, ont été soumis à des analyses de factorisation, superficielles au vu de leur nombre, mais significatives quant aux conséquences réelles de leur usage sur le Net. Elles visent, notamment à vérifier l'hypothèse sous-jacente à la sécurité des architectures PKI qui est que dans la génération de clés publiques les choix antérieurs de nombres premiers ne sont jamais répétés. Et là, patatras ! Tout le bel édifice s'écroule devant les faits : sur 6,6 millions de certificats X.509 et clés PGP contenant des modules RSA, 270.000, soit 4 % partagent le même module RSA bien que n'impliquant des entités totalement étrangères. La duplication des clés est parfois la règle plutôt que l'exception...

 



Par ailleurs, l'étude a trouvé 12.934 modules RSA, soit 2 pour 1000, n'offrant aucune sécurité. Même en se restreignant aux modules RSA de taille 1.024 bits, les modules RSA en liberté aujourd'hui n'assurent au mieux qu'un niveau de sécurité de 99,8 %. (Une illustration saisissante : 98,49 % des certificats X.509 utilisent le même exposant RSA, 65.537, le lointain second à 0,76 % étant 17.) Lorsqu'on regroupe les 6.185.228 certificats X.509 lorsqu'ils partagent le même module RSA — les groupes qui ne contiennent qu'un seul module sont les « bons », leur sécurité est garantie par la solidité théorique de RSA — on trouve avec désespoir plus de 14 groupes de plus de 1.000 certificats ayant des modules RSA communs. Au total, l'étude ne dégage que 5.989.523 modules RSA distincts qui, de surcroît, malgré les factorisations des modules de 512 bits en 2006 et de 768 bits en 2009, ont à 2,4 % des tailles encore inférieures à 768 bits. Aujourd'hui 73,9 % sont des modules RSA de 1.024 bits, 21,7 % de 2.048 bits et le reste est constitué d'entiers de tailles supérieures, jusqu'à 16.384 bits (pour 181 d'entre eux). Mais plus grave encore, une grande proportion des ces modules RSA ont en commun l'un de leurs deux nombres premiers (les p et q mentionnés plus haut) ce qui entraîne la perte totale de sécurité parce que leur décomposition commune est simplifiée par des algorithmes ad hoc (#).

 



L'aléatoire est au coeur des systèmes de chiffrement et faute de les tester correctement et de savoir tester correctement les générateurs de nombres aléatoires, on se rassurera à trop bon compte de leur fiabilité et de leur sécurité. Le ton alarmiste de certains commentaires publiés (#) sur cette étude est bien de mise : elle tire la sonnette d'alarme sur un problème profond et difficilement indétectable des architectures de sécurité. Quelques équipes innovantes travaillent aujourd'hui sur des nouvelles pistes pour y remédier. La jeune pousse MassiveRand — dont cet auteur est un très modeste actionnaire minoritaire — (#) par exemple, propose un TRNG True Random Number Generator, générateur de nombres aléatoires non déterministe) à très haut débit, pour les applications dans lesquelles la qualité des nombres aléatoires est cruciale.

 



Comme le répète inlassablement Bruce Schneier (#) les mauvais générateurs de nombres aléatoires nuisent gravement à la sécurité, quelque soit l'ingéniosité du dispositif mis en oeuvre.

 



samedi, février 04, 2012

In (Big) Datis Veritas

La Pénurie de données à l'âge classique. L'expérience était naguère encore chiche. L'efficacité d'une expérience scientifique classique reposait tout autant sur l'importance de l'hypothèse théorique dans laquelle elle s'inscrivait que sur l'ingéniosité de l'expérimentateur à la concevoir et en collecter les résultats tant était élevé le coût de la réalisation et de la production de données à partir de son observation. L'expérience de Michelson et Morley en 1887, par exemple, est généralement considérée comme la première d'une série successivement plus complexe d'évaluations de la Théorie spéciale de la relativité. Elle mit en oeuvre des miroirs parfaitement polis, des verres parfaitement transparents, rivés sur un lourd bâti en pierre flottant dans un bain de mercure, entièrement couverts pour pallier les variations infimes de tempértaure ; ces tonnes de matériel furent, de surcroît, amenées et construites à grands frais au sous-sol de la résidence universitaire de ce qui est devenu la Case Western University pour éviter vibrations et autres effets indésirables (#). Les quelques 238 données produites par quatre jours d'expérimentation occuperaient aujourd'hui difficilement le premier quadrant d'une simple feuille de tableur ! Mais le talent des expérimentateurs et le génie des théoriciens compensaient alors amplement l'avarice de l'expérimentation. Des maigres ruisselets de données qui sourdaient ainsi laborieusement d'expériences rares et coûteuses, une analyse en profondeur reconnaissait alors des faits c'est-à-dire, dans la perspective fondamentaliste prévalente, du réel et de la connaissance consistant ici en la croyance dans les faits.

 



L'observateur, théoricen, expérimentateur ou partie prenante, énonce donc que l'expérience de Michelson-Morley démontre que la vitesse de la lumière est constante. Mais l'expérience, dans les données qu'elle produit, énonce-t-elle une vérité ? En fait, elle n'a aucun besoin de le faire puisqu'elle remplit efficacement sa tâche sans dire un mot.

 



L'expérience produit des cas, des jeux de données (datasets) dit-on maintenant, où la vitesse de la lumière est invariable. Il n'y a là rien de remarquable : n'importe quel rayon lumineux en fait autant. Mais l'art de l'expérimentateur et le soubassement théorique aboutissent ici à une mesure du temps que la lumière met à parcourir des distances égales dans des directions différentes qui souligne l'invariabilité de la vitesse de la lumière. Ainsi pour reprendre Norwood Hansen (#) : «  facts are small theories and true theories are big facts  » (les faits sont eux-mêmes de petites théories et les vraies théories ne sont que des faits grandioses).

 



Cet équilibre économique précaire entre disette de données et profondeur de leur analyse conduit à des schémas d'interprétation particuliers devenus standards. Les données sont probantes si elles soulignent, elles exhibent, elles mettent en valeur ou elles transmettent sans faire de commentaire, ce qui en pratique comporte à la fois une référence et une instanciation. Des données qui font référence à un trait et l'instancient exemplifient ce trait, pour reprendre le vocabulaire de Nelson Goodman ; le jeu de données devient alors exemplaire du trait auquel il fait référence (#). Puisque l'exemplification est donc un mode de référence, tout ce qui exemplifie est un symbole. Des échantillons, des exemples au sens ordinaire, des données exemplifient les traits qu'ils exhibent et servent donc tous de symboles. Et puisque l'exemplification requiert l'instanciation, un jeu de données, comme symbole, ne peut exemplifier que des traits qu'il instancie : un échantillon significatif est nécessairement sélectif dans ce qu'il représente. Ainsi le jeu de données comme symbole appelle une interprétation : le comprendre nécessite de savoir lesquels parmis ses aspects exemplifient et à quels traits ils réfèrent.

 



Les traits qu'un jeu de données exemplifie dépendent de sa fonction. Parfois il arrive qu'un jeu de données, comme symbole, accomplisse toute une variété de fonctions. L'art de l'expériementateur et l'intention de celui qui produit le jeu de données peuvent contribuer à restreindre cette variété mais ne suffisent pas à déterminer le trait exemplifié tout simplement parce qu'ils peuvent se tromper. Ainsi Michelson et Morley se proposaient par leur expérience d'exemplifier la présence et la grandeur du vent d'éther. Or l'expérience à non seulement prouvé l'inexistence de l'éther luminifère mais également l'incapacité des catégories classiques à rendre compte des phénomènes électromagnétiques, point que Michelson et Morley trouvaient eux-mêmes inconcevable ! Les exemplaires opèrent par rapport à une constellation d'hypothèses ; quand on change ces hypothèses d'arrière-plan un jeu de données peut se mettre à exemplifier de nouveaux traits. Le jeu de données exemplaire contribue à construire la réalité en « matérialisant » et en organisant la constellation d'hypothèses sous-jacente.

 



Alea Big Data Est. L'intérêt actuel croissant pour le Big Data (#) et la perpective scientifique dans laquelle il peut s'inscrire accentue notablement l'importance de ces considérations sur représentation et la construction de la réalité.

 



Le premier constat est évidemment celui du bouleversement de l'équation économique de la production de données à des fins d'expériementation par et pour le Web. Les datacenters pharaoniques des titans du Web comme Google, Facebook, Twitter, Microsoft, etc. collectent des masses littéralement inimaginables de données. D'après IDC (#), le volume de données numériques créées et copiées sur le Web en 2011 a atteint 1,8 zettaoctets — et les métaphores incommensurables qui illustrent ces chiffres nous sont devenues familières.

 



Du coup la multiplicité des fonctions accomplies par un jeu de données, dans notre analyse précédente, explose mécaniquement avec le nombre mais également avec la croissance polynomiale des mises en relation possibles avec d'autres jeux de données tout aussi innombrables. À un coût rendu marginalement nul, la supernova des Big Data illumine les sciences sociales, économiques et comportementales (cognitives) avec un impact prospectif majeur sur la finance, la communication et l'information, et, au final comme l'explore habilement Nicholas Carr (#) sur notre esprit et notre cerveau.

 



Le second constat est, qu'en contrepoint, la déflagration des capacités de production, de stockage et de calcul des données a entraîné et accompagné des progrès mathématiques théoriques majeurs signalant l'irruption massive de l'aléa dans les avancées récentes de la combinatoire et de l'algorithmique. Les statistiques et leurs disciplines souvent mal aimées, parfois reléguées à des fonctionnaires crayeux au teint couleur muraille oeuvrant mystérieusement dans les poussiéreux corridors de bunkers staliniens surplombant des périphériques encombrés, acquièrent soudain un lustre nouveau en changeant de statut. Elles sont en train de devenir des datistiques pourrait-on dire, tant elles saluent le retour à la scène de l'Aléa.

 



L'utilisation de la simulation pour les calculs réputés intraitables en très haute dimension, par exemple, révolutionne les mathématiques appliquées (#). En effet, à quoi sert donc de produire plus de données ? Traditionnellement à réduire les marges d'incertitude dans les calculs. Mais si l'on produit vraiment massivement plus de données, on peut envisager d'accélerer subtantiellement les temps d'exécution de simulations numériques dans les tests et le calibrage des modèles statistiques ainsi que les temps d'exécution de ces modèles à des fins prédictives. On peut aussi compenser naturellement le manque d'information par des données produites très rapidement et en quantité, c'est-à-dire par des échantillons probants au sens précédent (#).

 



Les progrès de la formalisation mathématique de la méthode de Monte Carlo et, en particulier, de la nature de l'échantillonage de données permettant de substituer à une information manquante un jeu de données approprié pour le calcul d'estimations numériques de distributions de probabibilité (#) permet de généraliser l'usage d'algorithmes probabilistes à toute une classe de problèmes considérés comme hors de portée des algorithmes déterministes classiques. Ce qu'on appelle Markov Chain Monte Carlo, un ensemble de techniques mis au point récemment et qui touche à la représentation des groupes (#), à la géométrie algébrique (#), et au renouveau de la théorie des équations différentielles (#) notamment pour l'analyse du temps de convergence des processus markoviens (#), permet d'attaquer des problèmes combinatoires complexes, en haute dimension, récurrents dans les moteurs de recherche, le data mining, l'apprentissage automatique, l'indexation des contenus, la classification des documents, la détection de patterns, la gestion de flux de données en temps réel, etc.

 



Un exemple concret est constitué par le développement des bases de données dites de Monte Carlo (Monte Carlo Databases), spécialisées dans la gestion de données incertaines. Ici, au lieu de représenter l'incertitude par des probabilités numériques individuelles associées à chaque rangée d'une table relationnelle, le SGBD Monte Carlo (#) produit à la volée lors de l'exécution d'une requête SQL un jeu de valeurs pour les données incertaines suivant la distribution de probabilité souhaitée : un échantillon probant à la demande.

 



Le succès des algorithmes probabilistes dans la résolution de problèmes combinatoires ou calculatoires bouleverse l'analyse de la complexité algorithmique. Ces nouvelles méthodes laissent à penser que la barrière entre problèmes P et NP — solubles en temps polynomial ou non — n'est pas aussi imperméable et franche qu'on l'imagine. ( P = NP est encore un des grands problèmes mathématiques ouverts, non résolu #.) Les datisticiens théoriques savent désormais que s'il faut un temps exponentiellement long pour trouver une solution exacte aux calculs sur les Big Data, ils arrivent à des approximations probantes en temps polynomial pourvu qu'ils disposent du levier d'une chaîne de Markov, à convergence rapide, pour produire à la demande des instances aléatoires du problème.

 



Vérité et données. Pour l'exprimer de façon radicale, ces nouveaux moyens adaptés aux Big Data pourraient remettre en cause certains fondements de notre compréhension de la réalité. Au risque d'errer du côté du constructiviste radical (#) d'Ernst von Glasersfeld — disparu il y a un peu plus d'un an — ou de trahir un léger accent Orwellien, il faut reconnaître avec Goodman « qu'avoir à usiner les instruments spécifiques de production des faits rend sans objet toute vélléité d'identification du physique au réel et du perçu à la simple apparence ». La réalité issue du traitement par les moyens mathématiques modernes des Big Data est-elle vraie ?

 



Lorsque Google restitue une image de la propagation de la grippe dans le monde entier (#) à partir des requêtes des internautes, qu'elle collecte et qu'elle analyse en linguiste, le taux d'incidence calculé est il le vrai taux d'incidence de la grippe dans le monde ? Le statisticien réservé note tout au plus une corrélation entre l'indicateur de Google et le taux d'incidence mesuré auprès des médecins par le Center for Disease Control and Prevention, et oppose que rien n'assure que l'outil soit capable de fournir des tendances aussi pertinentes à l'avenir. (Les résultats ne reposent-ils pas essentiellement sur l'habitude largement répandue des internautes de se servir de Google horresco referens pour leurs recherches ?) Le datisticien goguenard lui demandera alors en retour combien de données il doit rajouter pour que le taux d'incidence devienne le taux réel pour tout usage pratique (politiques de vaccinations préventives, élaboration de stratégies de santé publique, information et sensibilisation des individus...) ?

 



C'est la confrontation assurée des deux cultures de la modélisation statistique telle que la commentait Leo Breiman dans un papier célèbre (#). Imaginons les données produites par une boîte noire : à l'entrée des variables indépendantes, à la sortie des résultats que l'on souhaite élever au rang de faits à des fins de prédiction — prédire quels seront les résultats produits pour des variables à venir — et à des fins d'information — comprendre comment les résultats sont associés naturellement aux variables d'entrée. Dans l'approche de la modélisation, typique d'après Breiman de « 98 % » des statisticiens, on postule qu'un processus stochastique est à l'oeuvre dans la boîte noire, les résultats étant issus de tirages aléatoires indépendants d'après un modèle commun de données. Il s'agit alors d'estimer les paramètres du modèle sur la base des observations réalisées puis d'utiliser ce modèle calibré à des fins de prédiction. Dans l'approche algorithmique plane l'ombre portée du Test de Turing : l'intérieur de la boîte noire est considéré comme inconnu et inscrutable, voire même comme sans pertinence aucune, et il s'agit plutôt de trouver un algorithme, une fonction des variables, qui produit les résultats ou une approximation des résultats. Dans la première approche la validation du modèle est une affaire manichéenne, positivement ou négativement tranchée par les tests classiques de goodness-of-fit comme le Chi-2. Dans la seconde, la validation est matière à riposte graduée, fondée sur la précision relative de l'approximation.

 



L'avalanche des Big Data et le déploiement massif des moyens de calcul associés donne une toute autre force à la validation dans l'approche algorithmique. Comme on l'a vu, non seulement le nombre massif et ses nouveaux instruments mathématiques conduisent la précision des approximation à des degrés jamais atteints — et, défend le pragmatique, bien plus que suffisants pour toute connaissance ou action pratique sur laquelle la conforter — mais circonviennent des problèmes que l'approche de modélisation avait renoncé même à attaquer. De plus les avancées théoriques des années 1980 et 1990, calcul sur les réseaux Bayesiens (#), simulation Monte Carlo des chaînes de Markov et Logique de Markov (#), théorie de Vapnik-Chervonenkis et les support vector machines (#), les outils « ensemblistes » pour l'apprentissage automatique (#) — boosting, bagging, random forests, etc. — acquièrent une plus vive acuité encore avec l'accès à bas coût aux plateformes de calcul du cloud computing, comme MapReduce, Hadoop, Dryad, Pregel, GoldenOrb et bien d'autres.

 



Dans le sillage du déferlement des Big Data la vérité pourrait alors se trouver redéfinie par le poids croissant de l'approche algorithmique (#). (Que l'on songe à Twitter Trends, par exemple.) Il n'est pas question ici du problème philosophique de la vérité qui tourne autour de la réconciliation de versions alternatives et concurrentes des faits par l'attribution de leur variété à des désaccords sur les conventions d'interprétation de ces mêmes faits. Il est plutôt question de la dérive graduelle de la définition opérationnelle de la vérité qui nous contentait jusqu'alors.

 



La vérité est ici et maintenant dans le test — une fois abandonnée la grande ambition du programme de Hilbert de fonder la vérité sur la cohérence du système mathématique issu du formalisme logique à laquelle, nonobstant les Bourbachistes (#), Gödel a imposé une bifurcation majeure. La vérité (métaphoriquement) dite par les données devient avec les Big Data affaire de crédibilité (probabilistes) et d'utilité (pragmatiques) — Huxley et Orwell.

 



Ce faisant, les Big Data promeuvent une réalité qui a de moins en moins à voir avec une croyance vraie justifiée. D'abord la justification au sens d'un argument qui part de prémisses vraies n'est plus de mise. Ce n'est pas ce qui soutient le jeu de (Big) données mais ce qu'il met en avant qui plaide pour un exemplaire. La vérité n'est pas non plus cruciale. Les expériences, les jeux de données, les échantillons informent au moyen de l'exemplification. Les données, symboles non verbaux, ne sont ni vraies ni fausses : le succès — opérationnel — qu'elles rencontrent ne repose donc pas sur la vérité. Leur contribution cognitive peut simplement consister à augmenter le répertoire conceptuel dont on dispose, à affiner son pouvoir de discriminer, à aiguiser sa capacité à reconnaître, synthétiser, organiser, etc.

 



Ainsi les Big Data très loin d'être épistémiquement inertes sont, au contraire, hautement fissiles et il est loisible de s'inquiéter de leur niveau actuel au regard de la masse critique.

 



mercredi, novembre 30, 2011

Colloque Computing


Il fut donc fréquemment question de cloud computing sous nos cieux ce mois de novembre, comme si le brumeux automne qui installait un ciel nuageux inspirait directement les débats techniques. Au début du mois, par exemple, le Centre d'analyse stratégique organisait un colloque hors des sentiers battus et rebattus sur un sujet que l'on se réjouissait à l'avance de voir polémique : « Nouveaux usages d'Internet, nouvelle gouvernance pour l'Etat ». Il est déjà tout à fait remarquable que l'Etat prenne soudainement note de l'influence d'Internet en 2011, quarante ans et quelques après sa naissance et un peu plus de vingt ans seulement après celle du Web, mais comble de ce saisissement stupéfiant provoqué par la modernité en marche, il conviait là à en débattre la figure mythique de Richard Stallman, le démiurge de l'Open Source.

 



Il est notoire que rms — comme toute production du projet GNU — est lui-même assorti d'une licence libre et d'un manuel d'utilisation précis auquel on est aimablement prié de se conformer. (En particulier sur l'usage des sachets de thé avec ou sans les add-ons de lait et de sucre.) Peut-être cela explique-t-il que l'homme se fasse rare en notre doux pays, bien qu'il parle parfaitement français et nous ait, en l'occurrence, brillamment régalé de la dernière mise à jour du Prêche du Libre dans son illustration par l'Open Data. Dans ce panel au ton de la casuistique, rms était flanqué, d'une part, de Nigel Shadbolt, Professeur de Sciences informatiques à l'Université de Southampton et, surtout, co-fondateur de data.gov.uk avec Sir Tim Berners-Lee rien moins, et, d'autre part, d'Augustin Landier, Professeur à Toulouse School of Economics, Économiste au Conseil d'analyse économique, dont on recommande chaudement les deux ouvrages « Le Grand méchant marché : décryptage d'un fantasme français », avec David Thesmar, et « La Société translucide : Pour en finir avec le mythe de l'Etat bienveillant », avec le même, où les auteurs explorent une régulation en architecture ouverte de la politique publique que permettrait, notamment, l'initiative Open Data dans laquelle la production de données statistiques est considérée comme une nouvelle fonction régalienne de l'Etat. Ces idées du vibrionnant chercheur de l'IDEI ont un certain cours en haut lieu puisque Etalab, créé en février 2011, commence à se faire entendre et promet « la mise à disposition de données brutes dans des formats exploitables ».

 



Ce subtil glissement du champ d'application des principes du Libre du code source aux données, introduit par rms dans ce débat sur les données publiques de l'Open Data, est certainement à l'origine, pour ce qui concerne maintenant les données personnelles et privées, de sa prise de position tonitruante sur le cloud computing dans une interview accordée au Guardian en 2008. « C'est un piège ! », admonestait-il, lançant ses foudres des sommets de l'Olympe du Libre : « C'est stupide ! C'est pire que stupide. C'est une campagne marketing ! ». (On lit bien dans la crudité du langage du Prophète les dernières extrémités où il se voit retranché !) L'aporie du consommateur pris, pieds et poings liés, dans les rets de ses fournisseurs cloud computing est réitérée dans un commentaire ciselé à la tronçonneuse du même rms dans la version en ligne du Spiegel. Il y vitupère en particulier Facebook qui, d'après lui, considère ses utilisateurs « non pas comme des clients, mais comme une marchandise » dont le réseau social peut à son gré valoriser les données personnelles à son plus grand profit. (Voyez aussi «  The Future of the Internet and How to Stop It  » de Jonathan Zittrain). Déjà soupçonné des pires exactions d'une Nouvelle surveillance foucaldienne digne du sinistre Panoptikon de Jeremy Bentham, ayant aujourd'hui transigé sur ce sujet avec la FTC qui avait lancé une enquête contre le réseau social, Facebook n'en prévoit pas moins ces jours-ci une fantastique IPO pour 2012 — une levée de 10 milliards de dollars sur une inimaginable valorisation de 100 milliards de dollars !

 



Quelle meilleure introduction aux débats de la semaine suivante sur la thématique du cloud computing, retenue pour l'édition 2011 de la conférence générale du consortium OW2 ? Les panelistes de la première table ronde (Bull, OW2, Microsoft, Open Nebula, Ubuntu, Orange Business Service, Université de Pékin) s'y interrogeaient sur l'avenir de l'Open Source et du cloud. Il est notable que les projets Open Source ne manquent pas dans l'empilement des couches que l'on convient de distinguer dans le mille-feuilles cloud computing. Pour les infrastructures et les plates-formes, — avec les excuses de rigueur pour le manque certain d'exhaustivité, mais comme disait Pierre de Fermat : hanc marginis exiguitas non caperet — citons le projet Nimbus, CloudForms de RedHat (pour les « nuages » privés ou hybrides), Ubuntu Cloud et Juju, Eucalyptus, Cloud.com maintenant chez Citrix, Open Nebula pour la gestion des « nuages », CompatibleOne OpenStack, CloudFoundry de VMWare ou encore OpenCompute de... Facebook ! Par ailleurs les associations professionnelles et consortiums fleurissent et prolifèrent par temps couvert : Free Cloud Alliance, Open Cloud Manifesto, Open Cloud Consortium, Cloud Standards, et bien d'autres sur les datacenters, la virtualisation ou le grid computing : tous fédérés mais chacun sous sa bannière ! Pour autant, toute cette agitation organisationnelle est-elle garante du succès des principes oecuméniques des libres clodoaldiens ?

 



Quant aux applications, elles étaient abondamment illustrées pour l'édification des masses au Colloque sur l'ingéniérie numérique (« Entre ruptures technologiques et progrès économique et social ») organisé à l'initiative de l'Académie des technologies, du Conseil économique, social et environnemental, du Minefi et du Conseil général de l'industrie, de l'énergie et des technologies. Au Palais d'Iena, sous la monumentale coupole d'Auguste et Gustave Perret, véritables architectes-entrepreneurs militants du génie civil français du début du XXe siècle — un modèle d'entrepreneur dont on a depuis en France, hélas, bien perdu la recette  ! —, le lustre de Serge Macel et les fresques de Jean Souverbie répandaient une componction solennelle dans le public. Les sujets abordés n'inspiraient pourtant pas à la somnolence : virtualisation et immersion 3D, modélisation et simulation, masses de données. Et il faut savoir gré à Henri Verdier, Président du pôle Cap Digital, d'avoir secoué l'assemblée par la vivacité et l'intelligence de son propos. Il était déjà intervenu au colloque du Centre d'analyse stratégique, après Stallman. Comme François Bancilhon, de Data Publica qui, antérieur à Etalab, se présente comme le portail français des données publiques et de l'Open Data, à ses côtés, Henri Verdier rappelait opportunément que la réflexion — et peut-être l'engouement — pour l'Open Data est jusqu'à présent principalement portée par sa représentation en termes politiques, dominée par les grands mots de démocratie, de transparence et de citoyenneté, beaucoup plus que par son impact industriel et économique qui sera peut-être plus sensible encore.

 



À l'âge du cloud les statisticiens ont de beaux jours devant eux !

 



dimanche, novembre 06, 2011

L'identitaire numérique


Le Sénat a adopté en deuxième lecture la proposition de loi relative à la protection de l'identité, néanmoins avec des modifications. Comme l'expliquait jeudi soir dernier, dans un amphithéâtre souterrain de Telecom ParisTech menacé à tout moment de submersion soudaine par les pluies torrentielles qui s'abattaient alors sur les contreforts de la Butte-aux-Cailles, Fabrice Matatia, qui avait largement contribué au dossier de cette carte d'identité électronique dès 2004 lorsqu'il était conseiller technique à l'éphémère Secrétariat d'Etat chargé de la prospective et du développement de l'économie numérique de NKM, le recours à la biométrie pour les données stockées dans la « puce » électronique de la nouvelle carte d'identité avait causé un émoi général et provoqué de houleux débats laissant, en 2005, le projet inabouti.

L'enfer (numérique) étant pavé (à très haut débit) de bonnes intentions, rappelons que, destinée, selon ses auteurs, à lutter contre la multiplication du nombre d'usurpations d'identité — ici dans la vie réelle pas dans la vie numérique —, estimé en France à 200 000 par an, la proposition de loi prévoit une série de dispositions visant à garantir une fiabilité maximale — je souligne — des passeports et cartes nationales d'identité. Il s'agit ainsi d'équiper les cartes nationales d'identité de puces électroniques sécurisées qui, non seulement contiendront des données biométriques numérisées (état civil, adresse, taille et couleur des yeux, empreintes digitales — les doigts pour le digital world —
, photographie, bientôt peut-être l'ADN), mais pourront également — peut-être pour faire passer la pilule, ou plutôt la puce — offrir à leurs titulaires de nouveaux services tel que l'authentification à distance et la signature électronique. Or, paradoxalement, en France l'usurpation d'identité ne constituait pas, avant cette année, un délit, sauf bien sûr, si l'usurpation se fait dans des circonstances qualifiables de délit pénal. Cela ne pouvait durer par les temps de sourde bienveillance sécuritaire actuels. Dans une rédaction fort imprécise, la loi LOPPSI, du 14 mars 2011, crée deux nouvelles infractions pénales concernant l'usurpation d'identité, numérique inclus cette fois : « Le fait d'usurper l'identité d'un tiers ou de faire usage d'une ou plusieurs données de toute nature permettant de l'identifier en vue de troubler sa tranquillité ou celle d'autrui, ou de porter atteinte à son honneur ou à sa considération, est puni d'un an d'emprisonnement et de 15 000 Euros d'amende. Cette infraction est punie des mêmes peines lorsqu'elle est commise sur un réseau de communication au public en ligne. ». Le champ d'interprétation semble donc heureusement assez vaste aux esprits byzantins qui professeront sans doute l'exégèse du texte dans le contexte de la loi Hadopi, par exemple — contre qui prononcer l'ostracisme de la cité numérique en lui coupant tout accès à la manne Internet, lorsque le voisin, sous votre identité numérique, utilise le WiFi d'un troisième voisin pour télécharger «  Born this way  » de Lady Gaga ? Délit pénal plus infraction ? Quelle est l'identité, réelle et numérique, du ou, peut-être, des coupables ? L'exception culturelle française s'en porte-t-elle vraiment mieux ?

 



La doxa traitera-t-elle de cette moderne déclinaison de la controverse de Valladolid : les individus qui bloguent collectivement sous un pseudo partagé — comme on l'a supposé parfois de Maître Eolas ou de Robert X. Cringely — ont-ils légalement une identité numérique ? Faut-il les poursuivre au pénal ou les admettre au grand concert de l'humanité virtuelle ? Symétriquement, l'internaute qui multiplie les pseudos d'un réseau social à l'autre, d'un serveur de courrier électronique à l'autre, utilisant l'un pour ouvrir un nouveau compte auprès du suivant est-il un usurpateur compulsif qu'il convient de réprimer avec la dernière sévérité ? Ce ne sont plus là des échafaudages d'une casuistique spéculative au moment où, à la conférence ACM SIGCOMM/USENIX IMC'11 tenue la semaine dernière à Berlin, les brillants esprits de l'INRIA dévoilent comment retourner les algorithmes mêmes des réseaux P2P pour identifier, localiser et analyser le comportement en ligne des internautes individuels. De la carte nationale d'identité (CNI) numérique à la carte d'identité nationale (CIN) numérique il n'y a plus que quelques octets !

 



Lors de sa première lecture, le 1er juin, le Sénat avait modifié le texte d'origine afin d'apporter une garantie matérielle rendant impossible l'identification d'une personne à partir de ses seules empreintes biométriques enregistrées dans la base de données pour réconciliation avec celles figurant dans la smartcard. Il s'agit du système des fichiers dits à « liens faibles ». Les députés, lors de l'examen du texte, le 7 juillet dernier, ont supprimé cette garantie, revenant au projet d'origine qui prévoyait l'identification sur la base de l'empreinte biométrique. La commission des Lois du Sénat, saisie pour la deuxième lecture, a rétabli cette technique du « lien faible » pour le fichier. La commission a également interdit l'utilisation d'un dispositif de reconnaissance faciale à partir des images numérisées des visages qui sont enregistrés dans ce fichier — cf., cette fois, la controverse de Facebook dans cette même tribune.

 



Si vous n'êtes ni Giscard Reventlov, ni Daneel Olivaw, tout ceci peut vous sembler confus et bien peu cartésien. C'est peut-être parce que dans l'esprit (bien peu positronique) du législateur et de sa clientèle, trois notions d'identité numérique s'amalgament :

 




  • celle que l'on emploie pour publier et pour se présenter sur Internet, l'avatar ;

  • celle que l'on exhibe à première demande sur son passeport et sa CNI numérique, le titre d'identité numérique, qui vise à prouver sa nationalité ;

  • celle que vous utilisez dans vos transactions sur le Web et qui permet au fournisseur de service de vous authentifier comme étant le client véridique du service rendu.



Dans cette dernière catégorie on peut également classer la « signature électronique » qui, en miroir, permet à l'utilisateur d'authentifier ses messages sortants. Les questions de signature électronique sont, eles-aussi, empreintes de certaines circonvolutions, ainsi que le rappelait l'éminent représentant de l'ANSSI à cette même réunion par temps de mousson rue Barrault. Nous vivions jusque là, innocents et naïfs, depuis Napoléon. Les questions relatives à la signature font partie de ce que les juristes appellent le « droit de la preuve » et le texte fondamental est le Livre III, Titre III, Chapitre VI du Code Civil intitulé « De la preuve des obligations et de celles du paiement ». Ce texte, remontant à 1804, a été mis à jour par la loi du 13 mars 2000 (2000-230), suite à une directive européenne de 1999. Cette véritable révolution juridique vise à reconnaître l'équivalence juridique entre une signature manuscrite et une signature électronique. Dans le décret qui suivit, sont introduites deux types de signatures :

 




  • La signature électronique simple, qui ne pourra être refusée en justice au titre de preuve (principe de l'équivalence avec l'écrit), mais dont il faudra démontrer la fiabilité au tribunal en cas de litige — c'est strictement celle à laquelle vous êtes habitués dans la vraie vie, une signature à l'encre sur du papier.

  • La signature électronique présumée fiable (ou signature électronique avancée, dans la terminologie européenne), pour laquelle la charge de la preuve pourra être renversée : il faudra démontrer une défaillance du système de création de la signature pour pouvoir la contester devant les tribunaux : c'est celle enfouie dans les puces de nos cartes bancaires de crédit, par exemple, mais dans le cadre d'une convention spécifique puisqu'elles sont antérieures aux décrets.



Pour être présumée fiable au sens de la loi, une signature devra satisfaire trois conditions:

 




  • être « sécurisée » (non-répudiation, indissociabilité du document, intégrité du document signé),

  • avoir été produite par un « dispositif sécurisé de création de signature électronique », ce qui signifie que le dispositif doit avoir été certifié par l'ANSSI (en France),
    - la vérification de la signature repose sur l'utilisation d'un certificat électronique qualifié. Ces certificats devront avoir été émis par des prestataires de services dûment accrédités par les pouvoirs publics.



Le coût de cette signature présumée fiable, autrement dit de l'authentification forte, est évidemment très élevé dans ce cadre législatif pour la signature électronique. Comme il n'y a, par ailleurs, aucun encadrement législatif de l'authentification forte pour l'instant, l'habitude prise dans la vie réelle de se satisfaire de signatures (non électroniques) simples persiste dans la vie numérique et, combinée au coût, retarde l'implémentation et la généralisation de la signature électronique présumée fiable. Malgré des initiatives du secteur privé cherchant à offrir des solutions commerciales tous azimuts, la France reste cependant en retard — ou en avance, c'est selon votre sensibilité à la Nouvelle Surveillance — sur d'autres pays européens qui ont rendu la CNI électronique obligatoire.

 



Au regard de ces perspectives encourageantes, trois types d'objets physiques se distinguent aujourd'hui comme supports de signatures fortes : les puces des cartes bancaires, les cartes SIM des téléphones cellulaires et, dans la mesure où il serait connecté en permanence au Net, un terminal lié à un service de stockage cloud décentralisée. Dans la première catégorie, les banques et leurs groupements type Visa et Mastercard sont les acteurs (privés), nationaux et étrangers, prévalents ; dans la seconde dominent les opérateurs de télécommunications, nationaux et étrangers, publics ou privés ; la troisième est ouverte, où se positionnent également des acteurs techniques, par exemple autour des certificats pour PKI (Verisign, Keynectis...), et des startups prometteuses comme MassiveRand, en France.

 



La bataille pour le contrôle de l'identité numérique est en cours d'initialisation. Loading...

 



dimanche, octobre 30, 2011

Octobre noir


Ces quelques semaines d'octobre témoignent avec acuité de la permanence de la pensée des pionniers de l'informatique et de la vive influence de leurs idées, non seulement dans le design et le développement des systèmes techniques mais dans la soudaine transformation même de notre vie en vie numérique. La tournure planétaire que prend la disparition de Steve Jobs, première star du show mondialisé de la numéréalité, présage l'escamotage imminent du réel sous le numérique. Octobre encore lorsqu'à quelques jours d'intervalle, s'éteignaient deux pionniers discrets de l'informatique, Dennis Ritchie et John McCarthy, les jours mêmes où les annonces de Google, pour le langage de programmation Dart, et de Microsoft, pour le projet Roslyn — pour n'en prendre que deux fortuitement concomitantes — illustrent notablement la rémanence de leurs travaux originaux dans les technologies actuelles.

 



Dans la préface de la première édition de l'indispensable ouvrage The C Programming Language (1978) — un modèle de littérature « technique », clair et bref — on lit : «  C was originally designed for and implemented on the UNIX operating system on the DEC PDP-11, by Dennis Ritchie.  ». Cette modeste attribution à Ritchie de l'invention de C, probablement rédigée par Brian Kernighan, coauteur avec Ritchie de cet incunable moderne, laissait à peine imaginer de la prépondérance que prendrait ce langage de programmation dans les développements ultérieurs de l'informatique. C'est à peine si les auteurs notaient, un peu plus loin, avec détachement (feint ?) : «  The operating system, the C compiler, and essentially all UNIX application programs (including all of the software used to prepare this book) are written in C.  ». Révolutionnaire à la fin des années 1970 ! Aujourd'hui il n'est probablement pas une journée sans que nous ne soyons dans notre vie quotidienne exposé à du logiciel — télécommunications, systèmes ou applications — écrit en C.

 



Au passage, nous rencontrons ici, à prendre ces pionniers au mot, notre première mis en abyme, signe avant-coureur de la dissolution du réel annoncée plus haut. Si le compilateur C est écrit en C, comment a-t-on compilé le (premier) compilateur ? Pas de boucle de rétro-action troublante ici : en fait, Ritchie avait adapté au PDP-11 un compilateur pour le langage de programmation B, lui-même dérivé par Ken Thompson du langage de programmation BCPL (Basic Combined Programming Language) qu'il utilisait — avec Ritchie, toujours lui ! — pour créer et développer le système d'exploitation UNIX. Nous sommes revenus là aux années 1966 et 1967. Thompson avait écrit le compilateur pour son langage B, sur DEC PDP-7, grâce à TMG, l'un des premiers frameworks de développement de compilateurs (en 1965) que Ritchie devait ensuite reprendre pour son compilateur C. La grande innovation de TMG, à l'époque, résidait dans l'utilisation même de la syntaxe du langage source pour diriger la compilation. La structure lexicale et syntaxique du code source y était directement visible et manipulable par une API spécifique. C'est exactement ce qu'on trouve aujourd'hui dans les syntax trees du tout nouveau projet Roslyn annoncé par le géant de Redmond ! Dans le cas de Microsoft, il s'agit d'exposer toute l'analyse du code source Visual Basic et C# — tiens ! un pas si lointain descendant de C, après tout — produite par le compilateur via des API : CaaS, Compiler as a Service, pourrait-on dire. Ces bonnes idées des grands précurseurs ont donc la vie longue...

 



Ken Thompson et Dennis Ritchie inventaient ce qui deviendrait UNIX alors qu'ils travaillaient sur le système d'exploitation en timesharing Multics (Multiplexed Information and Computing Service), dont le développement joint entre le MIT, General Electric et les Bell Labs démarra en 1964. D'évidence, beaucoup des idées exploratoires évaluées dans l'implémentation de Multics inspirèrent les choix techniques retenus dans UNIX. Mais Multics avait lui-même un précurseur pour ce qui concerne le timesharing, CTSS, qui nous ramène directement à l'autre géant de l'informatique disparu ce mois, John McCarthy. Nous sommes encore quelques années plus tôt, en 1962-1963. Le professeur McCarthy, mathématicien-logicien et informaticien de la première heure au MIT, avait écrit en 1959 un papier visionnaire, A Time Sharing Operator Program for Our Projected IBM 709, jetant les bases théoriques et pratiques du timesharing et imaginant, à l'avenir, une ressource informatique utilisée à la demande. Toute ressemblance avec le cloud computing n'est évidemment pas fortuite !

 



Mais peut-être inventeur du cloud, comme en passant, McCarthy est surtout l'un des pères de l'Intelligence Artificielle, ordonnateur des deux événements fondateurs de la discipline : la Conférence de Dartmouth sur l'Intelligence Artificielle en 1956, l'invention du langage de programmation LISP, en 1958 au MIT — qu'il avait rejoint, issu de Princeton où il avait voisiné avec John Nash le futur prix Nobel d'économie, dont la schizophrénie célèbre est décrite dans A Beautiful Mind, le livre de Sylvia Nasar et le film qui en a été tiré. Comme Dennis Ritchie, John McCarthy était un pionnier des langages de programmation et de l'architecture des systèmes d'exploitation dont les idées sont toujours — et plus que jamais — d'actualité. John McCarthy rejoignait l'université de Stanford en 1962 et y fondait, en 1964, SAIL, le Stanford Artificial Intelligence Laboratory, inaugurant l'âge d'or de l'Intelligence Artificielle — la décennie prodigieuse de 1964 à la fin des années 1970 qui vit les grands progrès théoriques que concrétiseraient les implémentations des années 1980 et 1990. John Markoff, dans What The Dormouse Said, écrit que McCarthy déménagea en Californie, séduit par la liberté culturelle et politique — ses parents étaient des communistes notoires dans les années 1930 — qui y régnait, contrastant avec la Côte Est plus collet monté. Au passage note Markoff, il y introduisait les premiers spécimens de hackers, une espèce dont l'habitat s'étendait jusqu'alors plutôt autour de Boston, notamment en la personne de Stephen « Slug » Russell, qui avait largement contribué au premier interpréteur LISP et universellement connu pour avoir créé le premier jeu vidéo instantanément populaire, SpaceWar! en... 1961. Il serait d'ailleurs plaisant d'imaginer la rencontre d'un professeur McCarthy, la quarantaine barbue, et d'un Steve Jobs adolescent rebelle à un sit-in manifestant de la contre-culture californienne des années 1970.

 



Avec LISP, McCarthy, le mathématicien, fut probablement le premier à parler de l'exécution d'un programme en termes « fonctionnels » , i.e d'appels de fonctions et de subroutines. (Ce qui est subtilement différent de l'idée de fonder un langage de programmation sur la notion mathématique de fonction.) C'est cette idée stylistique poursuivie par McCarthy qu'il prouvera féconde entre 1956 et 1959. Elle se trouve aujourd'hui encore dans tous les langages de programmation fonctionnelle, notamment chez le dernier-né de Google, Dart. Fortuit encore le fait que Ken Thompson vive aujourd'hui une retraite active chez le même Google où il a mis au point le langage de programmation procédural, Go, exacerbation radicale des concepts qu'il explorait déjà avec Ritchie il y a près de quarante ans ? L'exégèse des publications de McCarthy pendant cette période montre à quel point les premières recherches qui menèrent à LISP furent exploratoires, expérimentales et soumises à des hésitations et des revirements fréquents. Parmi les trouvailles et les heureuses formulations promises à une généralisation notons les fonctions récursives, les lambda-expressions, la fonction d'ordre deux map qui applique une fonction à chaque élément d'une liste — une nouvelle mise en abyme qui est au coeur de l'algorithme MapReduce dont on fait si grand cas aujourd'hui ! Imagine-t-on objets programmatiques plus délicieux que ceux que McCarthy présentait alors :

 




(defun M (n)
(cond ((<= n 100) (M (M (+ n 11))))
(t (- n 10))))


la fameuse fonction « 91 » qui sera analysée avec une précision d'entomologiste par Knuth — grand contributeur lui-même au projet SAIL à Stanford.

 



Ou encore l'extraordinaire fonction ambiguë, amb, qui choisit l'un de ses deux arguments et conduit à des gouffres conceptuels au fond desquels prolifèrent des fonctions qui ont des valeurs possibles mais indéterminées ! Voyez :

 




(defun less (n)
(amb (- n 1) (less (- n 1))))

(defun ult (n)
(cond
((<= n 0) 0)
(t (ult (less n)))))


et interrogeons-nous sur la valeur de ult(n) pour n positif ou nul... McCarthy espérait que la relation entre la programmation et la logique mathématique, dont ses travaux défrichèrent le champ théorique avec brio, serait aussi féconde en notre siècle que celle entre la physique et l'analyse le fut au siècle dernier. En tout cas, pour prendre un autre exemple récent, le fascinant débat sur le parallélisme et les appels asynchrones dans Javascript pour les applications Web, cf. Node.js, ne fera pas démentir cette prédiction.

 



Pour conclure, il est réconfortant de penser qu'à l'heure où disparaissent les pionniers et les initiateurs de notre nouvelle vie numérique, leurs idées, vêtues des habits modernes du Web, du cloud computing, des langages de programmation évolués, de la numérisation même de la culture, fleurissent et se développent dans des directions inédites. Certes les laboratoires et les centres de recherche changent, mais les bonnes idées restent toujours là, terres d'exploration attendant ceux qui prendront la relève de ces grands explorateurs.

 



ShareThis