Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Decryption can be parallelize #1

Open
mpgn opened this issue Apr 5, 2018 · 1 comment
Open

Decryption can be parallelize #1

mpgn opened this issue Apr 5, 2018 · 1 comment
Assignees

Comments

@mpgn
Copy link
Owner

mpgn commented Apr 5, 2018

As we can read in the document of the CBC cipher mode : https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Cipher_Block_Chaining_(CBC)

decryption can be parallelized

So we can had a level of parallelization to decrypt more quickly the encrypted text.

For each request send to the server, we can try to decipher one byte for each block we have. This way the randomness decreases regarding the number of block.

Check the screenshot bellow:

Without parallelization: ~6.5s

screenshot_20180405_195820

Chance to get one byte: 1/256

With parallelization: ~2.5s

screenshot_20180405_195737

Chance to get one byte: number_of_block/256 if the last byte of every request send to the oracle are different, then number_of_block-1/256, number_of_block-2/256 etc
Worst case: 1/256, best case number_of_block/256.

With this improvement we can decipher so much faster the encrypted text.

image

@mpgn mpgn self-assigned this Apr 5, 2018
mpgn added a commit that referenced this issue Apr 5, 2018
@mpgn mpgn changed the title The decryption can be parallelize Decryption can be parallelize Apr 5, 2018
@mpgn
Copy link
Owner Author

mpgn commented Apr 7, 2018

For now, this is only working on the poc but not in the exploit. I didn't find a proper way to duplicate the data send by the client on the proxy and have a proper response from the server.

mpgn added a commit that referenced this issue Apr 7, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant