From 5bd0e8dc3356337d3825413a125227c7633e1e6f Mon Sep 17 00:00:00 2001 From: gbucchino Date: Mon, 2 Mar 2026 16:55:06 +0100 Subject: [PATCH] upd --- .gitignore | 2 + .../__pycache__/functions.cpython-310.pyc | Bin 0 -> 709 bytes src/analysis/ic.py | 21 ++- src/cryptanalysis.py | 24 ++- src/stats/celle_qui_est_voilee.txt | 146 ++++++++++++++++++ src/{ => stats}/poem.txt | 0 src/{ => stats}/poem.txt.crypt | 0 7 files changed, 187 insertions(+), 6 deletions(-) create mode 100644 src/analysis/__pycache__/functions.cpython-310.pyc create mode 100644 src/stats/celle_qui_est_voilee.txt rename src/{ => stats}/poem.txt (100%) rename src/{ => stats}/poem.txt.crypt (100%) diff --git a/.gitignore b/.gitignore index d331981..2b85904 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ __pycache__/** **.txt.** !poem.txt.** !poem.txt +!celle_qui_est_voilee.txt +!stats/**.txt diff --git a/src/analysis/__pycache__/functions.cpython-310.pyc b/src/analysis/__pycache__/functions.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..63dcceb00187cd33285f1595ca3a5a0d42a457db GIT binary patch literal 709 zcmY*WL2DH;5Y8moecQ)A=_>`ro5uy)MLg)Ch+wM-@-7v`Cl$7vJiD^Hc}=p^_t-tH zcmG0r@Zdj^+{9CVf`Z~?l~O0nWM(p%`SL|gCS!u~_5SDL8xZo{2iJvS@EFzHMI(rS zl2kAU@IEbRMduWKCiq7(XCe?G?p%xxNfKS+4U&Lkra8uKqp1rabA^h7t|UY+LVbd2 z-lGwu150|+Q41{&?CGaF9c$S+y}*+e_Q}z-uTgz231$xTI%w=-=ixeh^ETUAA32hQ2-#}K)l$}OL(5E* zMJ bool: #content = f.readlines() line = f.readline() try: - line.decode('ascii') + # line.decode('ascii') + line.decode('utf-8') except UnicodeDecodeError: res = False else: @@ -34,6 +35,15 @@ def is_ascii_file(filename) -> bool: return res +def ascii_file(filename): + """ + In this function, we are analyse the file with IC, Bigram and Trigram + Based on the IC result, we are trying to brute force the Caesar Cipher or Vigenere + + If the result of the IC is lower than 0.007, it's an average + + """ + def cryptanalysis(): args = checkArguments() @@ -42,19 +52,31 @@ def cryptanalysis(): exit(-1) sig = get_signature(args.filename) + # print(sig) if(is_ascii_file(args.filename)): print("It may be an ascii-endocoded file") + ascii_file(args.filename) else: print("it may be not an ascii-encoded file") + """ + If the text is a ASCII text, we are going to analyse the file + Try to identify the kind of cipher, such as Caesar, Vigenere, Polybius + + With the IC, we can identify if the text used a substitution cipher or not + https://www.southampton.ac.uk/~wright/1001/index-of-coincidence.html + """ + # We are trying to identify the kind of cipher # Analysis with IC, trigram and Bigram # Brute force it + # Try to identify if the message is french or english + # Analysis with IC, trigram and Bigram if __name__ == "__main__": diff --git a/src/stats/celle_qui_est_voilee.txt b/src/stats/celle_qui_est_voilee.txt new file mode 100644 index 0000000..fcd3c5a --- /dev/null +++ b/src/stats/celle_qui_est_voilee.txt @@ -0,0 +1,146 @@ +Tu me parles du fond d’un rêve +Comme une âme parle aux vivants. +Comme l’écume de la grève, +Ta robe flotte dans les vents. + +Je suis l’algue des flots sans nombre, +Le captif du destin vainqueur ; +Je suis celui que toute l’ombre +Couvre sans éteindre son coeur. + +Mon esprit ressemble à cette île, +Et mon sort à cet océan ; +Et je suis l’habitant tranquille +De la foudre et de l’ouragan. + +Je suis le proscrit qui se voile, +Qui songe, et chante, loin du bruit, +Avec la chouette et l’étoile, +La sombre chanson de la nuit. + +Toi, n’es-tu pas, comme moi-même, +Flambeau dans ce monde âpre et vil, +Ame, c’est-à-dire problème, +Et femme, c’est-à-dire exil ? + +Sors du nuage, ombre charmante. +O fantôme, laisse-toi voir ! +Sois un phare dans ma tourmente, +Sois un regard dans mon ciel noir ! + +Cherche-moi parmi les mouettes ! +Dresse un rayon sur mon récif, +Et, dans mes profondeurs muettes, +La blancheur de l’ange pensif ! + +Sois l’aile qui passe et se mêle +Aux grandes vagues en courroux. +Oh, viens ! tu dois être bien belle, +Car ton chant lointain est bien doux ; + +Car la nuit engendre l’aurore ; +C’est peut-être une loi des cieux +Que mon noir destin fasse éclore +Ton sourire mystérieux ! + +Dans ce ténébreux monde où j’erre, +Nous devons nous apercevoir, +Toi, toute faite de lumière, +Moi, tout composé de devoir ! + +Tu me dis de loin que tu m’aimes, +Et que, la nuit, à l’horizon, +Tu viens voir sur les grèves blêmes +Le spectre blanc de ma maison. + +Là, méditant sous le grand dôme, +Près du flot sans trêve agité, +Surprise de trouver l’atome +Ressemblant à l’immensité, + +Tu compares, sans me connaître, +L’onde à l’homme, l’ombre au banni, +Ma lampe étoilant ma fenêtre +A l’astre étoilant l’infini ! + +Parfois, comme au fond d’une tombe, +Je te sens sur mon front fatal, +Bouche de l’Inconnu d’où tombe +Le pur baiser de l’Idéal. + +A ton souffle, vers Dieu poussées, +Je sens en moi, douce frayeur, +Frissonner toutes mes pensées, +Feuilles de l’arbre intérieur. + +Mais tu ne veux pas qu’on te voie ; +Tu viens et tu fuis tour à tour ; +Tu ne veux pas te nommer joie, +Ayant dit : Je m’appelle amour. + +Oh ! fais un pas de plus ! Viens, entre, +Si nul devoir ne le défend ; +Viens voir mon âme dans son antre, +L’esprit lion, le coeur enfant ; + +Viens voir le désert où j’habite +Seul sous mon plafond effrayant ; +Sois l’ange chez le cénobite, +Sois la clarté chez le voyant. + +Change en perles dans mes décombres +Toutes mes gouttes de sueur ! +Viens poser sur mes oeuvres sombres +Ton doigt d’où sort une lueur ! + +Du bord des sinistres ravines +Du rêve et de la vision, +J’entrevois les choses divines… – +Complète l’apparition ! + +Viens voir le songeur qui s’enflamme +A mesure qu’il se détruit, +Et, de jour en jour, dans son âme +A plus de mort et moins de nuit ! + +Viens ! viens dans ma brume hagarde, +Où naît la foi, d’où l’esprit sort, +Où confusément je regarde +Les formes obscures du sort. + +Tout s’éclaire aux lueurs funèbres ; +Dieu, pour le penseur attristé, +Ouvre toujours dans les ténèbres +De brusques gouffres de clarté. + +Avant d’être sur cette terre, +Je sens que jadis j’ai plané ; +J’étais l’archange solitaire, +Et mon malheur, c’est d’être né. + +Sur mon âme, qui fut colombe, +Viens, toi qui des cieux as le sceau. +Quelquefois une plume tombe +Sur le cadavre d’un oiseau. + +Oui, mon malheur irréparable, +C’est de pendre aux deux éléments, +C’est d’avoir en moi, misérable, +De la fange et des firmaments ! + +Hélas ! hélas ! c’est d’être un homme ; +C’est de songer que j’étais beau, +D’ignorer comment je me nomme, +D’être un ciel et d’être un tombeau ! + +C’est d’être un forçat qui promène +Son vil labeur sous le ciel bleu ; +C’est de porter la hotte humaine +Où j’avais vos ailes, mon Dieu ! + +C’est de traîner de la matière ; +C’est d’être plein, moi, fils du jour, +De la terre du cimetière, +Même quand je m’écrie : Amour ! + +Victor Hugo, Les contemplations diff --git a/src/poem.txt b/src/stats/poem.txt similarity index 100% rename from src/poem.txt rename to src/stats/poem.txt diff --git a/src/poem.txt.crypt b/src/stats/poem.txt.crypt similarity index 100% rename from src/poem.txt.crypt rename to src/stats/poem.txt.crypt