Projet « Cryptographie et sécurité des réseaux » II : Signature numérique (DSA)

Le second projet du cours « Cryptographie et sécurité des réseaux », suivi a l’Université de Stavanger, Norvège était un cran plus complexe que le premier, particulierement durant la génération des clés: nous devons manipuler des nombres extremement grands. J’ai développé l’application en Java et utilisé la classe BigInteger pour gérer ces nombres énormes.

Le programme fonctionne comme cela:

1. D’abord vous devez générer votre clé publique et votre clé privée, puis sauvegarder la clé publique (le programme vous permet de la sauvegarder dans un fichier .pk)

TO FINISH

2. Then, type your message and sign it, then save it in a file ( .mes extension)

3. The last step (the most important) is the part where you check if the message loaded really comes from the official writter. So you have to load his public key, load the message and then press check.

Here is a screenshot of the application:

For information, I have implemented the digital signature algorithm with a 1024 bits long p and a 160 bits long q (for people who knows what the DSA algorithm is all about)

I use a hash function made by myself. You can find everything in the code at the end of this post.

And you can download the whole project (code + exec + report) here :  > Download <

Projet « Cryptographie et sécurité des réseaux » I : Réseau Feistel (DES)

Premier projet personnel partie intégrante du cours « Cryptographie et sécurité des réseaux » que j’ai suivi a l’Université de Stavanger, en Norvège.

Le but était de développer un réseau de Feistel; nouys pouvions en choisir un existant ou en créer un de notre propre conception.

Après quelques essais, je me suis rendu compte que mes réseaux de Feistel n’étaient pas robuste et sécurisé, donc j’ai implémenté le DES (Data Encryption Standard), avec une petite modification: la clé n’a plus besoin d’etre 64bits long. Une fonction s’occupe de rendre la clé aussi longue que la taille du texte en clair.

Screenshot de l’application:

GUI of the Java application

Vous pouvez télécharger le projet (source + exec + rapport pdf) ici:  > Télécharger <

Enib Project : EnibMix C#

This following project has been realized in collaboration with my classmate Florian Boucher back in the first semester of my 4th year in the Ecole Nationale d’Ingénieurs de Brest.

It gave us the opportunity to practice after the theory and concept we learnt about C#

The application is a music player, where 2 different tracks can be played simultaneously. It has an « auto-mix » feature, which starts to play the second song when the first is almost finished, while reducing the volume of the first one and increasing the volume of the new track. It also has a « Cue-reset » feature, very well known for whoever has already tried to play with some electronic music software. (it allows the user to create loops easily)

It also has a « Samples » feature, in order to play short samples (ring, voice..) on top of the song.

Here are some screenshots:

Application at the beginning
EnibMix while reading
Frame allowing the use of SAMPLES

The project is available here: > Download <

(ps: if you are running a 64 bits OS, you might have to change the Platform target to force x86 (right click on project, propriety, built, platform target: x86))

Projet de web sémantique : Ontologie de l’E-sports

Durant mes études en Norvège, j’ai eu l’opportunité de découvrir les technologies du web sémantique (RDF/RDFS  – RDF/XML – OWL – SPARQL et les différents Semantic Web Service Framework)

Pour conclure cette matière, le projet était de créer une réelle ontologie (Via le logiciel « Protégé ») et de créer une application permettant la création de requêtes SPARQL pour parcourir et filter la base de donnée.

Le choix du sujet était totalement libre, donc j’ai pu choisir un univers que je connais bien : l’Esports.

Equipes, joueurs, sponsors, équipements matériels, organisateur (arbitre, commentateurs..), évenemments (Lan, compétitions online..) Tellement de différents types de données à représenter: l’exemple parfait pour ce projet!

Voici la taxinomie à la fin:

Et voici un screenshot de l’application que j’ai développé (en Java/Jena) pour supporter le système de requêtes:

J’ai utilisé une règle XSL pour convertir le xml renvoyé en un tableau HTML

Le projet est disponible ici: >Télécharger<

L’archive inclus un pdf expliquant le fonctionnement, l’application au format jar et le source code.

[Obsolete] Logiciel de triche pour le site internet Sportyran

J’ai joué a de nombreux jeux vidéos toute ma vie, du tres tres bon (des jeux a la Baldur’s Gate I, ou MDK) au tres tres .. inutile? Et dans la catégorie inutile mais qui occupe, il y a les jeux PHP.

Donc j’ai joué quelques temps a un jeu nommé Sportyran (http://www.sportyran.net/fr/foot/)  et une chose que je hais est le fait de devoir faire les meme actions tout le temps sans etre capable/autorisé a les automatiser.

L’idée principale de Sportyran était a ce moment la (le jeu a pas mal changé depuis apparemment) de jouer un match approximativement tous les 2 heures dans le but d’etre au maximum efficace. Donc je devais me loger, et cliquer sur les memes boutons toutes les 2 heures. Je dois avouer que cette « routine » n’était pas tres intelligente, et que parfois il m’arrivait de ne pas etre disponible (ecole/nuit/sport/soirées).. Bref j’ai eu l’envie d’automatiser tout cela, et c’est en C# que j’ai réalisé cette tres simple application:

Elle permet de se connecter toutes les 2 heures au site internet, voir si je peux jouer un match (lié au label présent sur le bouton visé), lancer la recherche de match, et ensuite revenir sur google.com  (Une fonctionnalité existait sur Sportyran permettant de voir tous les joueurs connectés et  je n’avais pas envie d’etre listé 24h/24)

J’ai modifié le software une seule fois apres la premiere version:  juste pour etre capable de faire la meme chose pour ma 2eme équipe (sur le meme compte).. et juste apres j’ai arrété de jouer, satisfait d’avoir automatisé tout cela ;D

Le code est vraiment tres simple, utilisant seulement l’élement WebBrowser de Visual Studio IDE (application codée en C#), un timer et une fonction qui scanne les valeurs (label) des différents boutons.

Voila un screenshot de l’application: