Find Jobs
Hire Freelancers

C++ in LINUX

$10-30 USD

Ukończony
Opublikowano około 7 lat temu

$10-30 USD

Płatne przy odbiorze
In this project, you will develop a C++ program to find keys of two files encrypted with AES in ECB mode using brute force key search (exhaustive key search). You will implement the Brute-force Key Search, i.e., you should try all the different combinations of first four bytes of the keys to find the right key (The first 4 bytes of the key are in the set of {a,…z} (lower-case characters) and {0,…,9}), and the original plaintext files. After the key is found, your program will print out "the key for the encrypted file, and the original plaintext file”. I have 13 encrypted files (00_e to 12_e) using the AES encryption algorithm in ECB mode posted. The source code of the encryption program and the decryption program in ECB mode using crypto library Cryptopp will be provided. You can revise the decryption program and include it as a function in your exhaustive key search program for you to decrypt with a guessed key. The length of each key used for encryption is 128 bits, which is 16 bytes. To find a 128-bit key with exhaustive search will be too time consuming. So the students are only required to search exhaustively for the first 32 bits (4 ASCII characters), while the remaining 96 bits of key is set to ‘x7qfkp3mbv9w’ for simplicity. The key format with the last 96 bits of the AES key fixed is in the following format: ????x7qfkp3mbv9w The first 4 bytes of the keys (4 ASCII characters) are in the set of {a,…z} (lower-case characters) and {0,…,9}. Because the unknown key length is 4 bytes, you can try all the possible combinations in your program (exclusive key search). The number of possible combination is 36^4. In the program, every loop iteration a new guessed key with the first 4 bytes of the key different (the last 96 bits were set to ‘x7qfkp3mbv9w’ for simplicity) will be generated and applied on the cipher text to see if the key is the correct key or not. In other words, you guess the first 4 bytes of the key every loop iteration, and use it to decrypt the ciphertext, and then analyze if the decrypted file is a possible English text. The original plain-text is written in English, actually copied from some child story books. It may have numbers, small or capital letters or some characters such as SPACE, LF,COMMA, PERIOD, COLON, SEMICOLON, “, ”, -, etc. as an ordinary English article might have. It is hard for anyone to know which characters are possible in the texts and which are not, so you probably have to guess. You can reference the table of ASCII code which you can find online. My suggestion for your analysis part is to count whether most of the decrypted characters, belong to possible readable English characters defined in your program (eg., 95 percentage of the decrypted characters are English characters), and if so, record this key as a “candidate.” Most likely, after you try half of all the possible key combinations, you will find the correct key, and thus the corresponding original plaintext.
Identyfikator projektu: 13377485

Informację o projekcie

3 ofert
Zdalny projekt
Aktywny 7 lat temu

Szukasz sposobu na zarobienie pieniędzy?

Korzyści ze składania ofert na Freelancer.com

Ustal budżet i ramy czasowe
Otrzymuj wynagrodzenie za swoją pracę
Przedstaw swoją propozycję
Rejestracja i składanie ofert jest bezpłatne
Przyznano:
Awatar Użytkownika
ok .
$40 USD w 1 dzień
4,9 (32 opinii)
5,0
5,0
3 freelancerzy składają oferty o średniej wysokości $117 USD dla tej pracy
Awatar Użytkownika
I am very proficient in c and c++. I have 16 years c++ developing experience now, and have worked for more than 7 years. My work is online game developing, and mainly focus on server side, using c++ under Linux environment. I made many great projects using c++, for example, I made the tools which could convert java codes into c++ scripts, of course garbage collection included, this was very similar to a compiler, and was very complex. I also made our own mobile game using c++, I can show you the demo of client, if you like. I am very proficient in java also. I have a very good review on Freelancer.com, I never miss a project once I accept the job, you can check my review. Trust me, please let expert help you.
$100 USD w 1 dzień
4,9 (114 opinii)
6,9
6,9

O kliencie

Flaga UNITED STATES
BEAVERCREEK, United States
5,0
3
Zweryfikowana metoda płatności
Członek od sty 26, 2017

Weryfikacja Klienta

Dziękujemy! Przesłaliśmy Ci e-mailem link do odebrania darmowego bonusu.
Coś poszło nie tak podczas wysyłania wiadomości e-mail. Proszę spróbować ponownie.
Zarejestrowani Użytkownicy Całkowita Liczba Opublikowanych Projektów
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Wczytywanie podglądu
Udzielono pozwolenia na Geolokalizację.
Twoja sesja logowania wygasła i zostałeś wylogowany. Proszę, zalogować się ponownie.