Code Monkey home page Code Monkey logo

awakening's Introduction

awakening

Repository for the awakening crypto problem.

asleep() and awake() are encryption / decryption funtions.

The code in Awakening.py depicts a terminal session interacting with these functions.

Figure out how to decode the encrypted messages decode, decode2 and decode3.

Submit pull requests of Requests.py for any messages you want encoded, and any messages you want decoded (other than the solution), and I will add the results into the file.

Submit pull requests to README.md for any questions or clarification.

First person to solve this wins a piece of art!

Enjoy!

I added a testdata folder. This includes 4 tests and corresponding log files. test.py and log.txt generates 7^5 dictionaries of string length 5 random/progressively. test2.py and Log2.txt generates 7^5 dictionaries of string length 5 straight randomly. test3.py. Log3.txt just shows an output of running 1 million tests checking input of asleep() with output of awake(). test4.py and Log4.txt generates 8000 random dictionaries of length 20. Feel free to propose more tests. I will generate more data if you're interested.

**UPDATE: I changed my mind about the hints. If I make it too easy, or give out answers, going through the trouble of designing this problem and getting it to work would just have been a waste of time. I have provided a boatload of raw data in the testdata folder which should be a big help. I will still add to Requests.py if there are any specific encryption requests. I hope you still enjoyed working on it even if you are unable to figure it out.

Q1. Does the order of numbers in the encryption matter / if you moved the items in the dictionary around, would the encryption be different?
A1. Dictionaries are inherently not ordered in python, the decryption takes this into account. You could take my encrypted message and move around all of the key value pairs and it would still be decrypted the same.

Q2. Do the quotes get encrypted as well / could you encrypt integers?
A2. Strings follow python rules of nested quotes. In the string "That's my string!", the inner quote will be encrypted. Yes integers and special characters can be encrypted. Feel free to submit anything you want encrypted and I will let you know if it fails.

Q3. Is the asleep() function deterministic? Will it always product an identical dictionary given the same string?
A3. Yes, asleep() will always produce the same dictionary given an identical string.

Q4. Can two-hand crafted encrypted-dicts provided to awake() produce identical plain-text?
A4. I generated a custom dictionary different than one generated by asleep() that will produce an identical string when put into awake() It is in Requests.py.

Q5. If you plan on giving out hints, at what point will you start giving out hints?
A5. See update. If you are still having trouble, it would be great if you could share it with other programmers you know might be interested. If a team of people solve it, everyone will get a piece of art. Thank you very much for sticking with this and not giving up.

awakening's People

Contributors

damienrigden avatar dfeehrer avatar reductor avatar thaumavorio avatar theonlytruemathnerd avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

awakening's Issues

Looking for someone to share ideas with

I'm looking for someone to share around ideas to try and solve the problem, I have limited time currently so far I have

  • Determined the 2 keys
  • Turned the keys back into their initial values
  • Discovered the split between the keys when encryption/decryption occurs (however what decides what key will be used is still unclear)

Suspected remaining work:

  • Work out what decides what key will be used (and in what situations both keys will be used)
  • How each byte is decoded sequentially (I can do the first 20 characters of most, but can't find the pattern to get past that, can spot some patterns for some but its not fully consistent)

EDIT: I also have no interest in the art work (unless I can sell it for $)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.