Long story short, I have a program that generates 32 character keys. These keys change every second so I assume they are time based. Some of these keys are as follows:

  • 8é 03]TyjzyQ;µ°g'Ôñ"KL2ûä*ª
  • ÁÁÚô£÷=ÁËè«-w¢c ££ià(tóWìQÁ
  • œÃ¶~çY»BõÙ)ýŒdÒŒDîýWH (œI
  • .ë[VÒ;S÷:uYªaCXZÃ.0Þ¯ó{œü X·ú

These keys go together with another parameter called serialNumber. The program, after generating a key like above, forms (with serialNumber and key) a 52 character base32 string called secret. I do not know how to relate the keys to the exact second they were created (maybe unix time stamp encryption?) but I have a secret value, and a serialNumber, and my goal is to reverse engineer the key from it. Given this is possible, can someone lead me down the right path? I'm told I have enough information to actually get the key from the secret and serialNumber I just don't know how to decrypt my secret (looks something like TQCN562J5NUVFWMNCMHFJLXHWU4R2T7MAC4NFHMFGJD4NNTYWW7A) with my serialNumber (looks something like 49284393). Any advice would be appreciated.

BTW this is extra credit work, I don't care about the points just want to learn how to solve this problem. Any hints would be appreciated!

closed as too broad by Steffen Ullrich, techraf, S.L. Barth, Stephane, Anders Sep 12 '16 at 19:30

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    How are the keys output? Are you given the binary that generates the keys? If so, why don't you just disassemble the program to find out the key? If you know that the problem is solvable without disassembling the program, what did you cover in class recently? (I'm assuming this was assigned as part of a class since you said that it's extra credit work.) – WillS Sep 12 '16 at 2:40
  • @WillS Yes I am given the binary executable that generates secrets. If I try and create a secret without giving it a key to build it with, it will generate a key to build the secret with, then output both the secret and the key. The key it auto-generates though is different every second you run the program. Assuming I disassemble it, could I find how it creates a secret from a given key and serialNumber? – user3412869 Sep 12 '16 at 2:55
  • @WillS BTW running objdump -Mintel -d ./keygen gives me a file with 270,000 lines in it. Not sure if this is crazy or not but seems nearly impossible to sift through haha – user3412869 Sep 12 '16 at 2:58
  • @BradWerth Yes it was..I deleted my previous question so that this is the only version of it – user3412869 Sep 12 '16 at 6:05