Javascript is not enabled on your browser.
You have to enable javascript to see the content of this page.
You can read
here
how to enabled javascript on your browser
version: 2020.3.4 - build:0
Main Topics
Electronic Identity
Asymmetric Encryption
Symmetric Encryption
Cooperative
Support Us
Independence
Papers and Source Code
About
Mission
Terms & Conditions
Contact Address
Legal
Partners
Privacy Policy
Code Breaker for AES, SHA-1/AES, SHA256/AES, as well as GBPMC_V1- and GBPMC Hash/GBPMC-V1 hash/cipher combinations (with C++ source code)
C++ VC2005 Source code and compiled executable of a Code Breaker for AES, SHA-1/AES, SHA256/AES, as well as GBPMC_V1 - and GBPMC Hash/GBPMC_V1 hash/cipher combinations
The academic tool is able to attack most of the popular hash/cipher combinations on all available processor cores. It contains everything that one needs to break a code by brute force.
C++ source code (32 bit/64 bit executables included) is available here
. GBPMC_V1 encryption routines have although been replaced by dummy code in order not to potentially make Type 1 encryption available to criminals.
GBPMC_V1 decryption routines are although fully functional.
Source code of the removed encryption routines is available on request for experts or for whoever is interested in the technology to encrypt giant blocks at once
.
Speed when attacking AES: 4.6 million keys per second !
The screenshot on the left shows a brute force attack on AES with 128 bit long keys on an Intel Core i7 clocked at 3.06GHz. This microprocessor makes 8 virtual cores available through hyperthreading. The 8 threads try a staggering 4.6 million key combinations per second!
Each thread is capable of deciding autonomously if a key combination is correct or not. This is performed by decrypting two blocks (2x128 bit) and by running a short bit frequency test.
All SHA-X/AES
combinations
or the pure AES cipher are all used in CBC mode in order to simulate realistic implementations.
If a number of decrypted data blocks appear to be non-random, a subset of the
ENT randomness test suite
is executed in order to check if the decrypted data is non-random.
Speed when attacking PMC Cipher's flagship Polymorphic Cipher: only 25 keys per second !
When the tool is used to apply the brute-force attack on the GBPMC HASH/GBPMC_V1 hash/cipher combination, the entire ciphertext file (1024 bytes .. 256 megabytes) is loaded into the RAM of the computer and each code-breaker thread needs to copy this data for each test cycle. Due to this and due to the extremely long key setup time of the GBPMC cipher (Giant Blocksize Polymorphic Cipher), only approx. 25 key combinations per second can be tried with an Intel Core i7 clocked at 3.06GHz. For the GBPMC Hash/GBPMC_V1 combination, only approx. 10 key combinations per second can be tried!
A quick frequency test is performed for the first 128 bytes of the decrypted ciphertext. If randomness of this data is questionable, a subset of the
ENT randomness test suite
is executed in order to check if the decrypted data is non-random.
Users of the PMC Ciphers File Encryption tool can check out the phantastic security of the software that they have purchased.
In order to attack the implemented cipher (
GBPMC Hash/GBPMC_V1
), 4 billion transistors and approx. 400.000 times more time than for attacking AES is required!
Due to the option to attack
GBPMC_V1, the tool allocates 256 megabytes of RAM per thread. In order to break AES, only a few kilobytes o RAM would actually be necessary.
Practically 100% certainty that the correct key is found with time !
The code breaker tool finds the correct key with almost 100% certainty. The chance that a wrong key is yielded is relatively small. The source code is although currently adjusted for high sensitivity. A key combination that yields a small amount of entropy might be regarded as a hit.
All popular file formats like MP3, BMP, JPEG, MPEG or TS feature a header that typically contain english language and lots of 0x00- and/or 0xff-bytes. English text or the text of any other language contains lots of redundancy. For the English or German language, a minimum of keysize/6.6 plaintext bits are required to tell correct from wrong key, which is approximately 22 bytes for AES. The technical term for this is the so-called unicity distance. Languages like English, French or German have a limited character set of up to 97 characters (which corresponds with 2^6.6). When breaking AES, the code breaker tool relies on 256 bits of plaintext (32 bytes) to decide if the correct key has been found. Certainty to identify the correct key is thus practically 100% if the plaintext is sufficiently non-random. For encrypted highly compressed files like .zip- or .pdf files, it might although naturally be impossible to find the key.
For the Giant Blocksize Polymorphic Cipher, keys can potentially be longer than the message that is encrypted. For such short messages it might then be impossible to find the right key as many different plaintexts would potentially make sense. The code breaker tool will although anyways be able to try only comparably short keys. The first 128 bytes of the decrypted plaintext consequently lead to almost 100% detection rate of the correct key.
Here's a hexdump of the first 256 bytes of an MP3 file:
It can be clearly seen that there's not much entropy in this data. Any randomness test suite will yield that the above data is clearly non-random.
The primary test that the code breaker tool executes is the Frequency (Monobit) test. This test is simple, fast and it requires only a few bytes to yield a useful result. If a decrypted plaintext appears to be suspicious, the tests in the ENT randomness test suite that require only a few data samples are consulted:
- The Serial Correlation Coefficient: This quantity measures the extent to which each byte in the file depends upon the previous byte.
- The C
hi-square test: The chi-square distribution is calculated for the stream of bytes in the file and expressed as an absolute number and a percentage which indicates how frequently a truly random sequence would exceed the calculated value.
- The
Entropy test: The information density of the contents of the file, expressed as a number of bits per character.
For a more detailed explanation of these tests, please read here (
http://www.fourmilab.ch/random/
).
Click here to read more about the performance of the AES and GBPMC code breaker tool.
A geocaching challenge has started on September 12, 2011. Click here to read more.
Regarding Cookies on this Site
We are using cookies only for essential technical requirements to ensure a smooth visit of our website. We refuse any other usage of cookies. For legitimate interest, we collect our own range measurements for the purpose of website analysis (performance, design compatibility, interaction, language). More information are available in our Privacy Policy.