![]() |
|
|
#1 | |
|
Noodles
"Mr. Tuch"
Dec 2007
Chennai, India
3×419 Posts |
This problem is from a cryptography course.
Let ⊕ be the XOR operator. AES (Advanced Encryption Standard) is an encryption function that takes two arguments (plaintext message, key) each ranging between 0 and 2128-1 and returns a ciphertext value again ranging between 0 and 2128-1. For a given key, the encryption from plaintext to ciphertext is easily computable (AES function) and also the decryption from ciphertext to plaintext is easily computable (AES-1 function). For a given key, the set of plaintext messages and the set of ciphertext messages are being bijective. However, with the given plaintext messages and ciphertext messages, computing the key is computationally out of reach. However, I am neither sure that if for a given plaintext message, there can be two keys that encrypt it to the same ciphertext message (Again that assume that computing to finding out such a collision is computationally out of reach). nor sure that if for a given ciphertext message, there can be two keys that decrypt it to the same plaintext message (Do these two statements that are being essentially equivalent ?? I do wonder that !!). Consider these two problems 1. AES(x1, x1) ⊕ y1 = AES(x2, x2) ⊕ y2 with x1 ≠ x2 and y1 ≠ y2 2. AES(y1, x1) ⊕ y1 = AES(y2, x2) ⊕ y2 with x1 ≠ x2 and y1 ≠ y2 The first problem is being stupidly easy. Right ?? Isn't it... It is quite very obvious / trivial / natural that if you fix x1, x2, y1 to arbitrary values, then you could calculate y2 = AES(x1, x1) ⊕ y1 ⊕ AES(x2, x2). I am looking out for a solution to the second problem... Right ?? Isn't it... How will you go about for solving the second problem ?? !! It is quite very subtle that → if you fix x1, y1, y2 to arbitrary values, then computing key x2 from plaintext and ciphertext is being impossible. → if you fix x1, x2, y1 to arbitrary values, then we should deal with y2 variable at two places, one inside of the AES function, one outside of the AES function along with the XOR (⊕) operator up on the right hand side. → on the other hand, if the second problem were AES(y1, x1) ⊕ x1 = AES(y2, x2) ⊕ x2 with x1 ≠ x2 and y1 ≠ y2 then again that it would have been easier to do solve are being if you fix x1, x2, y1 to arbitrary values, then you could calculate y2 = AES-1(AES(y1, x1) ⊕ x1 ⊕ x2, x2). Quote:
My Own Two Cents Piece of Cake Bonus You can use operators / operations for the concatenation, addition, subtraction, multiplication, division, square root, factorial, power (index / exponentiation), parenthesis (brackets), absolute value (modulus). 8. Make out 87 by using the digits 1, 3, 5, 7. ![]() 9. Make out [strike]76[/strike] 84 by using the digits 0, 4, 5, 9. ![]() 10. Make out 47 by using the digits 0, 1, 2, 3. ![]() Absolute value (modulus) is being essentially useless - → |x| = x or -x. |x - y| = x - y or y - x. Last fiddled with by Raman on 2016-09-05 at 20:29 |
|
|
|
|
![]() |
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Where can I find a Reverse and Add program? I can't find any! | Stargate38 | Programming | 18 | 2015-07-10 06:08 |
| Find the Value | davar55 | Puzzles | 7 | 2009-07-02 19:46 |
| Find the Value | davar55 | Puzzles | 25 | 2007-07-15 15:56 |
| Collision algorithm for Discrete log | Citrix | Math | 7 | 2005-11-25 16:53 |
| New way to Find (X^Y) % M | maheshexp | Miscellaneous Math | 29 | 2004-08-30 15:59 |