This shows you the differences between two versions of the page.
ii:labs:02:tasks:03 [2021/11/07 20:26] radu.mantu |
ii:labs:02:tasks:03 [2024/11/01 10:59] (current) radu.mantu [03. [50p] Solving a substitution cipher] |
||
---|---|---|---|
Line 48: | Line 48: | ||
Remember ANSI codes? | Remember ANSI codes? | ||
<code bash> | <code bash> | ||
- | $ echo "\033[1;34m I'm blue... aba di... aba die... aba di aba die...\033[0m" | + | $ echo -e "\033[1;34m I'm blue, da ba dee, dabba daa-ee, dabba dee-a dabba da \033[0m" |
</code> | </code> | ||
---- | ---- | ||
- | In breaking a short substitution cipher like this while also knowing the original language, you need to look at bigrams and trigrams. Small group of letters that have a limited amount of possible values that make sense: //"to"//, //"and"//, //"the"//, etc. | + | In breaking a short substitution cipher like this while also knowing the original language, you need to look at bigrams and trigrams. Small groups of letters that have a limited amount of possible values that make sense: //"to"//, //"and"//, //"the"//, etc. As you reveal more and more of the original text, words will begin to form, making everything progressively easier. |
If you need an extra hint: | If you need an extra hint: | ||
<spoiler> | <spoiler> | ||
- | //"5 SLEUZGUT 1607"// looks like a date. Hmm... | + | //"5 SLEUZGUT"// looks like a date. Hmm... //**"SLEUZGUT"**//... |
</spoiler> | </spoiler> | ||
+ | </note> | ||
+ | |||
+ | <note> | ||
+ | Already done? Try [[https://ctflearn.com/challenge/238|this challenge]] as well. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Alternatively, if you want to keep learning python, take a look at [[https://ocw.cs.pub.ro/courses/ep/labs/05|these labs]] for an introduction into //NumPy// (a fundamental module for numeric computation) and //matplotlib// (a module for plotting). | ||
</note> | </note> | ||
<solution -hidden> | <solution -hidden> | ||
- | <code python> | + | <file python cracker.py> |
#!/usr/bin/python3 | #!/usr/bin/python3 | ||
Line 119: | Line 127: | ||
if __name__ == '__main__': | if __name__ == '__main__': | ||
main() | main() | ||
- | </code> | + | </file> |
</solution> | </solution> |