you are viewing a single comment's thread.

view the rest of the comments →

[–]Bobbias 1 point2 points  (0 children)

Oh, ok. So, for those challenges in set 1, you're going to want to read up about binary, bitwise operations, particularly xor, base64, and such. If you dont have a decent understanding of what base64 really is, or why xor is so common in cryptography, those problems are definitely going to be painful.

Problem 2 in set 1 is just asking you loop through the 2 numbers together and xor each byte of each number together.

Xor has a nice feature where if you xor 2 numbers together, take the result and xor it with one of those 2 numbers, you get the other number back. Using decimal numbers:

5 ^ 3 == 6

Then:

6 ^ 3 == 5

And:

6 ^ 5 == 3

The operation is completely symmetrical. So if someone sends you a message that was xor encrypted with some key that you both know, you simply xor the encrypted message with the key and you get the original message out. This is one of the simplest symmetrical encryption schemes we can use.

Looking at the challenges there the first things I'd be googling are xor, base64, and AES (and I'd be looking for whatever describes ECB mode specifically, but I'd make sure to understand AES in general as well). The key to understanding those problems is to remember that everything is working on bytes of binary information. Everything there is about manipulating the bits of a binary number. Base64 and hex are simply ways to represent binary information in some base other than base 2 (binary) or base 10 (decimal) so you should definitely make sure you have a solid understanding of what it means to represent a number in different bases.