Skip to content

Full break#3

Open
Mesonnaise wants to merge 1 commit into
BrownFineSecurity:mainfrom
Mesonnaise:main
Open

Full break#3
Mesonnaise wants to merge 1 commit into
BrownFineSecurity:mainfrom
Mesonnaise:main

Conversation

@Mesonnaise
Copy link
Copy Markdown

C++ implantation showing full break of the encryption algorithm.

Full break demonstration
@Frostie314159
Copy link
Copy Markdown

I'm surprised, by just how much that reduction breaks the ciphers neck. Since all messages start with 0xf1, followed by a type and two bytes length, we basically have four bytes of known plaintext. The only byte we don't know is the type, which is conveniently the second byte, the key of which we can derive from the first. This means, that we can crack all messages of the protocol, in the time it would take to decrypt them with knowledge of the key.

@Mesonnaise
Copy link
Copy Markdown
Author

Ya, the cipher uses every common cryptographic concepts: substitution-box, key scheduler, cipher block chaining. Everything is implemented in the worse way possible. Even the most rudimentary concept of adding additional rounds wasn't done. How hard would it have been to just add a "for loop."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants