upd
This commit is contained in:
parent
16fa7489f9
commit
5bd0e8dc33
2
.gitignore
vendored
2
.gitignore
vendored
@ -3,3 +3,5 @@ __pycache__/**
|
||||
**.txt.**
|
||||
!poem.txt.**
|
||||
!poem.txt
|
||||
!celle_qui_est_voilee.txt
|
||||
!stats/**.txt
|
||||
|
||||
BIN
src/analysis/__pycache__/functions.cpython-310.pyc
Normal file
BIN
src/analysis/__pycache__/functions.cpython-310.pyc
Normal file
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__":
|
||||
|
||||
146
src/stats/celle_qui_est_voilee.txt
Normal file
146
src/stats/celle_qui_est_voilee.txt
Normal file
@ -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
|
||||
Loading…
Reference in New Issue
Block a user