There are server programs and client programs.

  • Prepare two keys (A, B) for AES.
  • The A key creates an encryption table in advance with WhiteboxAes.
  • The B key creates a decryption table in advance with WhiteboxAes.
  • The client uses the A table, encrypts the data with WhiteboxAES, and sends it to the server.
  • The server decrypts and uses the data with the A key using the regular AES library.
  • The server encrypts the data using the B key using the regular AES library and sends it to the client.
  • The client uses B-tables in WhiteboxAES to decrypt and use the data. In this way, I think the client is secure.

But what if:

Is WhiteboxAES meaningless and dangerous when using methods to generate encryption and decryption tables with one key and use them on the client? For example, isn't it meaningless to use it for SaveData in a client program?

  • $\begingroup$ I don't see the connection between the 2 paragraphs. Para 1 is not the scenario your question is about, correct? Can you define what you mean by "meaningless" and "dangerous"? Usually there would be a threat model that the user is not protected from - what is it? $\endgroup$
    – bmm6o
    Mar 25 '20 at 15:43
  • $\begingroup$ I'd read the "Prepare two keys (A, B) for AES" as: The same plain AES key is converted by a routine in two different "WhiteBox keys", one of them is exclusively usable for encryption, the other one is exclusively usable for decryption. $\endgroup$
    – j.p.
    Mar 25 '20 at 16:35
  • $\begingroup$ Yes, that's right. My question is below the blank. The danger is that even if you generate an encryption and decryption table from a single key, if the client program is read and executed, it will decrypt the encrypted data. I guess it just doesn't make sense to just replace the key with a table, and the table itself plays the same role as the key. $\endgroup$
    – founder
    Mar 26 '20 at 15:01
  • $\begingroup$ In other words, is it correct to use whitebox aes for communication purposes as shown in the upper part of the blank? Does it only work when there is an opponent? $\endgroup$
    – founder
    Mar 30 '20 at 12:21
  • $\begingroup$ @j.p. : my reading of the part now with bullet points is that key A is used for encryption of client-to-server traffic, while key B is used for server-to-client traffic. White box AES is used for both keys on the client side. But I can't make sense of the last two sentences, where questions are asked. Among other things I do not get if the keys A and B are merged into one in that part, or if they are still separate. Assuming the former: indeed, using separate keys makes some sense (otherwise, knowledge of the client allows to decipher client-to-server traffic for many AES operating modes). $\endgroup$
    – fgrieu
    Apr 20 '20 at 17:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.