This commit is contained in:
gbucchino 2026-03-02 16:55:06 +01:00
parent 16fa7489f9
commit 5bd0e8dc33
7 changed files with 187 additions and 6 deletions

2
.gitignore vendored

@ -3,3 +3,5 @@ __pycache__/**
**.txt.**
!poem.txt.**
!poem.txt
!celle_qui_est_voilee.txt
!stats/**.txt

Binary file not shown.

@ -41,10 +41,21 @@ def ic(filename):
y.append(chr(ord('a') + alphabet))
plt.bar(y, allIC, largeur)
# plt.show()
return ic
if __name__ == "__main__":
ic("test.txt")
ic("foo.txt")
ic("poem.txt")
ic("poem.txt.crypt")
ic1 = ic("stats/le_bateau_ivre.txt")
ic2 = ic("stats/celle_qui_est_voilee.txt")
ic3 = ic("stats/poem.txt")
ic4 = ic("stats/a_une_madone.txt")
ic5 = ic("stats/homme_et_la_mer.txt")
ic6 = ic("stats/cyrano_bergerac.txt")
# Average
icavr = (ic1 + ic2 + ic3 + ic4 + ic5 + ic6) / 6
print(f"Average of these ICs: {icavr}")
# Do the same with the Caesar cipher
ic1 = ic("stats/poem.txt.crypt")
print(ic1)

@ -26,7 +26,8 @@ def is_ascii_file(filename) -> 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__":

@ -0,0 +1,146 @@
Tu me parles du fond dun rêve
Comme une âme parle aux vivants.
Comme lécume de la grève,
Ta robe flotte dans les vents.
Je suis lalgue des flots sans nombre,
Le captif du destin vainqueur ;
Je suis celui que toute lombre
Couvre sans éteindre son coeur.
Mon esprit ressemble à cette île,
Et mon sort à cet océan ;
Et je suis lhabitant tranquille
De la foudre et de louragan.
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, nes-tu pas, comme moi-même,
Flambeau dans ce monde âpre et vil,
Ame, cest-à-dire problème,
Et femme, cest-à-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 lange pensif !
Sois laile 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 laurore ;
Cest peut-être une loi des cieux
Que mon noir destin fasse éclore
Ton sourire mystérieux !
Dans ce ténébreux monde où jerre,
Nous devons nous apercevoir,
Toi, toute faite de lumière,
Moi, tout composé de devoir !
Tu me dis de loin que tu maimes,
Et que, la nuit, à lhorizon,
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 latome
Ressemblant à limmensité,
Tu compares, sans me connaître,
Londe à lhomme, lombre au banni,
Ma lampe étoilant ma fenêtre
A lastre étoilant linfini !
Parfois, comme au fond dune tombe,
Je te sens sur mon front fatal,
Bouche de lInconnu doù tombe
Le pur baiser de lIdéal.
A ton souffle, vers Dieu poussées,
Je sens en moi, douce frayeur,
Frissonner toutes mes pensées,
Feuilles de larbre intérieur.
Mais tu ne veux pas quon te voie ;
Tu viens et tu fuis tour à tour ;
Tu ne veux pas te nommer joie,
Ayant dit : Je mappelle amour.
Oh ! fais un pas de plus ! Viens, entre,
Si nul devoir ne le défend ;
Viens voir mon âme dans son antre,
Lesprit lion, le coeur enfant ;
Viens voir le désert où jhabite
Seul sous mon plafond effrayant ;
Sois lange 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 doù sort une lueur !
Du bord des sinistres ravines
Du rêve et de la vision,
Jentrevois les choses divines…
Complète lapparition !
Viens voir le songeur qui senflamme
A mesure quil 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, doù lesprit 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 jai plané ;
Jétais larchange solitaire,
Et mon malheur, cest dêtre né.
Sur mon âme, qui fut colombe,
Viens, toi qui des cieux as le sceau.
Quelquefois une plume tombe
Sur le cadavre dun oiseau.
Oui, mon malheur irréparable,
Cest de pendre aux deux éléments,
Cest davoir en moi, misérable,
De la fange et des firmaments !
Hélas ! hélas ! cest dêtre un homme ;
Cest de songer que jétais beau,
Dignorer comment je me nomme,
Dêtre un ciel et dêtre un tombeau !
Cest dêtre un forçat qui promène
Son vil labeur sous le ciel bleu ;
Cest de porter la hotte humaine
Où javais vos ailes, mon Dieu !
Cest de traîner de la matière ;
Cest dêtre plein, moi, fils du jour,
De la terre du cimetière,
Même quand je mécrie : Amour !
Victor Hugo, Les contemplations