1. Malbolge Chritosphe Delagarde, septembre 2000 I.U.T., Université de la Méditerrainée 2.

Slides:



Advertisements
Présentations similaires
1. Ook Christophe Delagarde, septembre 1999 I.U.T., Université de la Méditerrainée 2.
Advertisements

1. Spoon Christophe Delagarde, septembre 1998 I.U.T., Université de la Méditerrainée 2.
C++ Les fonctions. Présentation Utilité : Dès qu'un programme dépasse la centaine de lignes de code, il est pratique de pouvoir le décomposer en plusieurs.
Plan de travail B Du lundi 24 septembre au vendredi 4 octobre Voici la liste des compétences qui seront travaillées durant les deux prochaines semaines.
CINI – Li115 1 Semaine 3 Boucles (suite), tirages aléatoires, bibliothèque graphique ● Imbrication d'instructions if et for ● Boucles for imbriquées ●
« Objectifs BAC » : Savoir différencier les tables de mobilité brute avec les tables de destinée et les tables de recrutement Savoir lire une table de.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
Plan de travail A Du mardi 4 septembre au vendredi 14 septembre Voici la liste des compétences qui seront travaillées durant les deux prochaines semaines.
Semaine 01 La programmation créative Introduction.
TP 1 Maths De la séquence à la séance… en passant par la classe.
Après 3 séances Tous les binômes ont commencé l'exercice « Formes »
Ajouter le code dans une page html
Exploitation de logiciels :
Les tables de multiplication au ce1 « Une construction réfléchie des tables favorise-t-elle leur mémorisation et leurs transferts ? » DOUARCHE Vaéa.
Modèle objet : les classes
La construction du nombre à l’école maternelle animation pédagogique présentée par Edith Guilbert et Claire Oustailler, PEMF école.
Les Instructions Itératives (Les Boucles)
Introduction au Langage Pascal
OUTILS D’AIDES AUX SYNDICATS
03/02/2018.
10/3/2017Footer Text1 Bienvenue a tous ! Bienvenue a tous ! Tutoriel v1.0.
Quelques Termes INFORMATIQUE ? ORDINATEUR ( Système Informatique)?
Chapitre 1 nombres, chaînes de caractères, booléens, et VARIABLES
Séance 2 Expression écrite.
Tiré de: J.-M. Muller, Arithmétique des ordinateurs, Masson, 1989.
Algorithme et programmation
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Spip / Joomla...en 1h ! Mercredi 30 Avril 2008.
Exploitation d’albums au cycle 1
Réforme du baccalauréat
Semaine #1 INF130 par Frédérick Henri.
Algorithmique Avancée et Complexité Chap2:Complexité et Optimalité
AO (Architecture des ordinateurs)
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Principes de programmation (suite)
Construire les premiers outils pour structurer sa pensée
de toute série statistique
Algorithmiques Abdelbasset KABOU
SPECIALITE MARKETING.
Un Algorithme , c'est Quoi ?
Pour cette découverte de S cratch !
Après 3 séances Tous les binômes ont commencé l'exercice « Formes »
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Négociation commerciale et relation clients
Écrire un article à plusieurs
L E C ORPS D ’ UN A LGORITHME / P ROGRAMME – L A PARTIE I NSTRUCTION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie.
L ES I NSTRUCTIONS I TÉRATIVES (L ES B OUCLES ) Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira,
Science du traitement rationnel de l'information
Programmation en C++ C++ de base
REVUE DE LITTERATURE. Introduction Première partie majeure dans la rédaction du mémoire, la réalisation d’une revue de littérature consiste à effectuer.
Synthèse 8 : Langage informatique
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
2 Copyright © 2004, Oracle. Tous droits réservés. Restreindre et trier les données.
Laurence ALBERT (CPD Maternelle)
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE
B.Shishedjiev - Informatique
La synthèse de documents
Programmation Android Les listes
Considérations de programmation
Le Cycle SCrum SPRINT et release.
ENSEIGNER L’ALGORITHMIQUE ET LA PROGRAMMATION AU COLLÈGE
Flowchart Itération Cours 04.
Programme d’appui à la gestion publique et aux statistiques
Formation Dragon NaturallySpeaking
Diaporama PPS réalisé pour
Utilisation de la danse à des fins d’enseignement scolaire
Definition de html sommaire. Présentation de html, css et javascript Module 1.
Note de service du 25/04/2018 l.Leclercq, IEN MLJ 1
La programmation dynamique
Transcription de la présentation:

1

Malbolge Chritosphe Delagarde, septembre 2000 I.U.T., Université de la Méditerrainée 2

3 Définition du Malbolge

4 Malbolge Origine du mot Il tire son nom du huitième cercle de l'enfer dans L'Enfer de Dante, le Malebolge. Cependant, la programmation reste évidente une fois les principes acquis. Origine du langage Parmi tous les langages existants, leur objectif est toujours d'être simpliste ; le Malbolge tenta de contraster, en vain. (voir fr.wikipedia.org/wiki/Malbolge ) fr.wikipedia.org/wiki/Malbolge

5 Instructions Définition du Malbolge

6 En Malbolge, il n’y a que 8 instructions. Malbolge trouve quelle instruction exécuter en prenant la valeur à [c], en lui ajoutant la valeur de c et en lui soustrayant 94 jusqu'à ce que le nombre soit inférieur à 94. Le résultat final dit à l'interpréteur ce qu'il doit faire :

7

8 Instructions Hello Word ! Définition du Malbolge

9 Un premier programme : Le traditionnel « Hello Word ! » begin 666 copy.mb M1"="04 _/CT\.SHY.# WIY>'=V M=71S 75Q;6EE85U955%-245!/3DU,2TI) M2$=&141#0D% M>7AW=G5T<W)Q<&]N;6QK:FEH9V9E9&-B86!?7EU<6UI96%=655134E%03TY- M3$M*24A'1D5$0R9?O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V] MO;V]Y+V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V] MO;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V] MO;V]O>2]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V] DO;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;T* end Attention : Cette écriture a été simplifiée dans le but de permettre une compréhension plus rapide, cependant une écriture plus rigoureuse permettrait au code de gagner en efficience et de réduire son grand nombre de lignes

10 Le programme peut donc être écrit ainsi : (=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk** Un placement dans des anneaux génériques modulo N aurait également permis d'optimiser la compilation, cependant ces notions (quoique évidentes) seront abordées dans le prochain cours.

11 Instructions Hello Word ! Opérateur OP Définition du Brainfuck

12 | A trit: ________|_0__1___2_ 0 | *D 1 | Trit 2 | Si la mémoire (*D) est entièrement composée de 1, alors le résultat est seulement le registre A avec 1s et 0s échangés. Si le A trit est à 2s, alors le résultat est la mémoire avec 1 et 2 échangés. Toutes les valeurs triviales auront 0s dans leurs « upper trits ». De ce fait tout OP aura 1s dans ses positions respectives.

13 Instructions Hello Word ! Cycles dans le chiffrement Définition du Malbolge

14 La cryptanalyse de Malbolge par Lou Scheffer mentionne six cycles différents dans le chiffrement. Ils sont listés ici : * 33 ⇒ 53 ⇒ 45 ⇒ 119 ⇒ 78 ⇒ 49 ⇒ 87 ⇒ 48 ⇒ 123 ⇒ 71 ⇒ 83 ⇒ 94 ⇒ 57 ⇒ 91 ⇒ 106 ⇒ 77 ⇒ 65 ⇒ 59 ⇒ 92 ⇒ 115 ⇒ 82 ⇒ 118 ⇒ 107 ⇒ 75 ⇒ 104 ⇒ 89 ⇒ 56 ⇒ 44 ⇒ 40 ⇒ 121 ⇒ 35 ⇒ 93 ⇒ 98 ⇒ 84 ⇒ 61 ⇒ 100 ⇒ 97 ⇒ 46 ⇒ 101 ⇒ 99 ⇒ 86 ⇒ 95 ⇒ 109 ⇒ 88 ⇒ 47 ⇒ 52 ⇒ 72 ⇒ 55 ⇒ 110 ⇒ 126 ⇒ 64 ⇒ 81 ⇒ 54 ⇒ 90 ⇒ 124 ⇒ 34 ⇒ 122 ⇒ 63 ⇒ 43 ⇒ 36 ⇒ 38 ⇒ 113 ⇒ 108 ⇒ 39 ⇒ 116 ⇒ 69 ⇒ 112 ⇒ 68 ⇒ * 37 ⇒ 103 ⇒ 117 ⇒ 111 ⇒ 120 ⇒ 58 ⇒ * 41 ⇒ 102 ⇒ 96 ⇒ 60 ⇒ 51 ⇒ * 42 ⇒ 114 ⇒ 125 ⇒ 105 ⇒ * 50 ⇒ 80 ⇒ 66 ⇒ 62 ⇒ 76 ⇒ 79 ⇒ 67 ⇒ 85 ⇒ 73 ⇒ * 70 ⇒ 74 ⇒ Ces cycles peuvent être utilisés pour créer des boucles qui font des choses différentes à chaque fois et qui deviennent finalement répétitives. Lou Scheffer a utilisé cette idée pour créer un programme Malbolge (inclus dans sa cryptanalyse sur laquelle un lien ci-dessous pointe) qui répète tout ce que l'utilisateur donne en entrée.

15 Instructions Hello Word ! Cycles dans le chiffrement Définition du Malbolge Propositions d'ajout

16 Malgré les tentatives, le malbolge reste un langage simple à utiliser et comprendre, en y mettant un peu du sien, bien entendu. Voici quelques suggestions pour le rendre plus compliqué : - Refaire la table de permutation des instructions afin d'enlever les cycles courts. - Retirer le surlignage de l'interpreteur qui permet à l'utilisateur de charger des valeurs non-ascii directement - Modifier les instructions lorsqu'elles sont traitées, pas terminées. De ce fait, les branches se modifieraient également toutes seules. - Introduire une randomisation polymorphique nilpotente permettant l'ajout sigmaré de différentes teta-valeurs

17 Préparer le prochain cours Propositions d'ajout Définition du Malbolge Instructions Hello Word ! Cycles dans le chiffrement

18 A travailler : -Commencer à voir les macro-définition du Malbolge -Voir les opérations atomiques sig N -Découvrir la Trivialité omnipotente -Réviser ce cours (contrôle en fin de séance)