Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/andream16/gocrackerino
Go Meet in The Middle Key Cracker
https://github.com/andream16/gocrackerino
cracker encryption go golang meet-in-the-middle
Last synced: about 1 month ago
JSON representation
Go Meet in The Middle Key Cracker
- Host: GitHub
- URL: https://github.com/andream16/gocrackerino
- Owner: andream16
- Created: 2016-10-24T21:00:35.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-03-18T09:29:38.000Z (over 7 years ago)
- Last Synced: 2024-08-04T09:06:38.856Z (4 months ago)
- Topics: cracker, encryption, go, golang, meet-in-the-middle
- Language: Go
- Size: 243 KB
- Stars: 2
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-network-stuff - **2**星
README
# GoCrackerino ![](https://stuff.mit.edu/afs/sipb/project/golang/arch/go1.2.1-linux-amd64/favicon.ico)
## Golang Key Cracker Which Implements Meet In the Middle Strategy.Given a known `cipher-text` and a known `plain-text`, it finds two keys `k1` and `k2` in a way that
`Ek1(plain) == Dk2(cipher)`
where `E` is the encryption function and `D` is the decryption function.It tries all the possible keys in the range of `24/28/32 bits` and prints which are the keys to be used for the encryption and decryption.
Keys can only be `6/7/8 Digits HEX` and `Cipher/Plain` can only be `16 Digits HEX`.
This cracker was written in `Golang` since I needed to run both `Encryption` and `Decryption` in parallel and `goroutines` made it easy.
# What you need to run the project:
- Go : ~1.7
- Ocaml: ~4.03.0
- AWK : ~4.0.1
- Grep : ~2.x
Download the project, extract the contents of `sp-network for challenge mitm.zip`, then run `make` on its folder, two `executables` and more files will be generated. Move `encrypt` and `decrypt` executables to the main project's folder or just make sure to specify their paths on `go-crackerino.go`.You can run `encryption` using: `./encrypt -s key cipherText` and `decryption` using `./decrypt -s key plainText`.
- 24-bit: 000000 - FFFFFF
- 28-bit: 0000000 - FFFFFFF
- 32-bit: 00000000 - FFFFFFFF`Plain/Cipher` couples to be used to test the application:
- 24-bit: C330C9CBD01DFBA0 - E10C65124518DB05
- 28-bit: 492A5BB83F8A3F95 - 47090A6AC4A56798
- 32-bit: FFC7C9E5694ABFF7 - 98AC59F25448FFAC
Make sure to have `~20GB` of free space for the 32-bit challenge since it will write huge amounts of couples `key cipher` in a file.When `Ek1(C) == Dk2(P)` you found the right keys `k1, k2` to read all encrypted messages.