J'ai le cryptogramme et un programme de cryptage (avec la clé codée en dur). Comment pourrais-je trouver la clé? La disponibilité du chiffreur doit sûrement ouvrir des possibilités au-delà de la force brute.Cracking du cryptage Playfair
1
A
Répondre
2
Oui, sachant que l'algorithme peut aider à décoder le texte chiffré, mais seulement s'il y a une faille dans l'algorithme qui pourrait être exploitée. (les bonnes nouvelles sont Playfair a quelques défauts qui peuvent être exploités)
Voici quelques bons points de départ à lire.
- Wikipedia (lire tout - en particulier cryptanalyse)
- Basic Cryptanalysis (regardez le chapitre 7)
Le second est pas ce que je qualifierais de lecture légère, mais intéressante si vous êtes en chiffres.
0
J'ai trouvé un moyen de cinq lignes (évidemment réévaluées un peu, et il est vrai très longues lignes):
(a,b,c)="".join((input("CODE: ")).split()),input("Polybius Square: "),""
for i in a:
c+=str(int(((b.find(i))-((b.find(i))%5))/5))+str((b.find(i))%5)
for j in range(0,(int(len(c)/2))):
print((b[((5*(int((c[:(int(len(c)/2))])[j])))+(int((c[(int(len(c)/2)):])[j])))]).lower(),end="")
NB: Lorsque vous êtes invité à entrer dans le carré de Polybe, entrez d'abord la ligne 1, puis rangée 2 etc, pas d'espaces
Ensuite, vous avez juste à supprimer inutile 'x et le tour est joué!
0
Essayez:
(a,b,f,g,c)="".join(input("CODE: ").split()),input("Polybius S: "),"","",1
for(i)in(a):
if(c%2)==0:
g+=i
else:
f+=i
c+=1
for(j)in(range(0,len(f))):
if(b.find(f[j])%5)!=(b.find(g[j])%5)and(int(((b.find(f[j]))-(b.find(f[j])%5))/5))!=(int(((b.find(g[j]))-(b.find(g[j])%5))/5)):
print(b[((int(((b.find(f[j]))-(b.find(f[j])%5))/5))*5)+(b.find(g[j])%5)],end="")
print(b[((int(((b.find(g[j]))-(b.find(g[j])%5))/5))*5)+(b.find(f[j])%5)],end="")
elif(b.find(f[j])%5)==(b.find(g[j])%5)and(int(((b.find(f[j]))-(b.find(f[j])%5))/5))!=(int(((b.find(g[j]))-(b.find(g[j])%5))/5)):
print(b[((((int(((b.find(f[j]))-(b.find(f[j])%5))/5))-1)%5)*5)+b.find(f[j])%5],end="")
print(b[((((int(((b.find(g[j]))-(b.find(g[j])%5))/5))-1)%5)*5)+b.find(g[j])%5],end="")
elif(b.find(f[j])%5)!=(b.find(g[j])%5)and(int(((b.find(f[j]))-(b.find(f[j])%5))/5))==(int(((b.find(g[j]))-(b.find(g[j])%5))/5)):
print(b[((int(((b.find(f[j]))-(b.find(f[j])%5))/5))*5)+((b.find(f[j])%5)-1)%5],end="")
print(b[((int(((b.find(g[j]))-(b.find(g[j])%5))/5))*5)+((b.find(g[j])%5)-1)%5],end="")
Il est pas joli, mais cela fonctionne
Questions connexes
- 1. Hacking/cracking deontology
- 2. Cryptage du mot de passe
- 3. cryptage du mot de passe
- 4. cryptage du savon dans .net
- 5. L'encodage du fichier diffère-t-il du cryptage du contenu
- 6. Cryptage du message SOAP dans l'axe 2
- 7. Utilisation du cryptage AES en C#
- 8. Cryptage manuel du mot de passe
- 9. NServiceBus: cryptage au niveau du message
- 10. Utilisation du cryptage blowfish avec Android?
- 11. Cryptage du tableau sous forme de chaîne
- 12. Cryptage/décryptage du fichier avec python
- 13. Cryptage 1 voie et cryptage 2 voies
- 14. Code de cryptage/décryptage des données à l'aide du cryptage AES CFB 128 bits
- 15. Cryptage Python: cryptage du mot de passe à l'aide de la clé publique PGP
- 16. Captcha cryptage
- 17. cryptage vocal
- 18. C# code pour cryptage
- 19. Cryptage des messages WCF
- 20. Cryptage C# WPF
- 21. cryptage sha256 en erlang
- 22. Cryptage en utilisant rijndael
- 23. Le cryptage est difficile: cryptage AES à Hex
- 24. X509Certificate cryptage/décryptage
- 25. Cryptage du champ de mot de passe SQLite de l'iPhone
- 26. Cryptage du mot de passe weblogic SALTEDHASHED en java
- 27. Cryptage SQLServer du canal de données à partir de C#
- 28. Sécurisation et cryptage du fichier .mdb dans C#
- 29. Réécriture du code de cryptage Rijndael 256 C# en PHP
- 30. Cryptage du trafic réseau avec Java et RSA