It looks like you're using an Ad Blocker.

Please white-list or disable AboveTopSecret.com in your ad-blocking tool.

Thank you.

Some features of ATS will be disabled while you continue to use an ad-blocker.

# Could the rubiks cube be used as a crypto key generator?

page: 1
1
share:

posted on Jul, 7 2012 @ 05:15 AM
I just saw something over at reddit that made my mind boggle, read this from wikipedia.

The original (3×3×3) Rubik's Cube has eight corners and twelve edges. There are 8! (40,320) ways to arrange the corner cubes. Seven can be oriented independently, and the orientation of the eighth depends on the preceding seven, giving 37 (2,187) possibilities. There are 12!/2 (239,500,800) ways to arrange the edges, since an even permutation of the corners implies an even permutation of the edges as well. (When arrangements of centres are also permitted, as described below, the rule is that the combined arrangement of corners, edges, and centres must be an even permutation.) Eleven edges can be flipped independently, with the flip of the twelfth depending on the preceding ones, giving 211 (2,048) possibilities.[24] [8! \times 3^7 \times 12!/2 \times 2^[11]] = 43,252,003,274,489,856,000 which is approximately forty-three quintillion.[25] The puzzle is often advertised as having only "billions" of positions, as the larger numbers are unfamiliar to many. To put this into perspective, if one had as many 57-millimeter Rubik's Cubes as there are permutations, one could cover the Earth's surface 275 times. The preceding figure is limited to permutations that can be reached solely by turning the sides of the cube. If one considers permutations reached through disassembly of the cube, the number becomes twelve times as large: [8! \times 3^8 \times 12! \times 2^[12]] = 519,024,039,293,878,272,000. which is approximately five hundred and nineteen quintillion[25] possible arrangements of the pieces that make up the Cube, but only one in twelve of these are actually solvable. This is because there is no sequence of moves that will swap a single pair of pieces or rotate a single corner or edge cube. Thus there are twelve possible sets of reachable configurations, sometimes called "universes" or "orbits", into which the Cube can be placed by dismantling and reassembling it.

Rubiks wiki

I was wondering if it is possible to address every single permutation, and using a software version of the rubiks cube have it create a cryptokey based on the positions of a randomised shuffle.
The idea that the cube can be rebuilt to have 519 quintillion combinations implies to me that it could be very very safe.
Will someone who is interested in math or cryptography please tell me if it would be possible to make a secure key, and, have another person be able to read the key by a end user process of discovery.
I remember seeing something a while ago, using a colour as the starting point and the face of a clock it is possible for two people to generate the same key.
Could this be done using the one colour of the rubiks cube, and the randomised position of all cubelets?.

posted on Jul, 7 2012 @ 06:39 AM
reply to post by The X

Yes it would be possible to create a key from the cube. What do you mean by generate the same key? Usually when you encrypt something, you just give the key to the people you want to be able to read it. Since you've already generated it once, you can just save them the trouble of having to regenerate it again.

However, if you wanted to, You could instead give them a set of random and arbitrary instructions that they could carry out to generate the same key such as rotations, flips, starting points or whatever. But it won't make it anymore secure.

Any eavesdropper or hacker that would intercept your transmission of the key, would be just as likely to intercept your transmission of the generation instructions as well. And therefore could also generate the same key. Might as well just transmit the key itself. Just do it in private where the hacker can't see it.

If you can't keep it secret, then this is what public/private key encryption is for. It takes two mathematically related keys. Your public key encrypts messages and the private key decrypts messages. Now anyone with your public key can encrypt a message to you, but only you can read them because it takes your private key to open them.

posted on Jul, 7 2012 @ 06:52 AM
reply to post by tinfoilman

I appreciate you taking the time to reply,.
I was asking if it is possible to use the Diffie-Hellman way to pass the relevent information to someone else, based on the positions of the cubelets and the original starting colour?.

Diffie-Hellman key exchange.

posted on Jul, 7 2012 @ 07:04 AM
reply to post by The X

Yeah that shouldn't be a problem. You would have to convert the cube positions to numbers that can be transmitted. This is easy. Then use whatever key exchange method you wish to use to transmit the numbers. Then your friend reconstructs the cube, either real or virtual, on his side from the numbers. Also easy.

Then after you've transferred the cube positions you would have each others cube keys from then on. Then you could use the cube position to generate keys for whatever encryption algorithm you wanted and send messages back and forth.

From then on If you wanted to change keys you could just send the changes, rotations, flips or whatever, but not the starting position. If he makes the same changes as you make you'll end up with the same thing. But the hacker won't know what position you guys started from and won't be able to recreate your changes after you've transmitted the first key.

EDIT: Sorry, in case that wasn't clear I was talking about using the cube two different ways in two different parts of the encryption. Just to make it simpler, the point was, anywhere in the process where you need a big or random number, key, prime, modulus, or whatever number, the cube's position can be used to generate that number in all cases.

You can use the cube's position for multiple types of encryption. Key exchange, symmetric key encryption, and public/private key encryption. Just in case it wasn't clear.
edit on 7-7-2012 by tinfoilman because: (no reason given)

posted on Jul, 7 2012 @ 07:27 AM

Originally posted by tinfoilman
reply to post by The X

Yeah that shouldn't be a problem. You would have to convert the cube positions to numbers that can be transmitted. This is easy. Then use whatever key exchange method you wish to use to transmit the numbers. Then your friend reconstructs the cube, either real or virtual, on his side from the numbers. Also easy.

Then after you've transferred the cube positions you would have each others cube keys from then on. Then you could use the cube position to generate keys for whatever encryption algorithm you wanted and send messages back and forth.

From then on If you wanted to change keys you could just send the changes, rotations, flips or whatever, but not the starting position. If he makes the same changes as you make you'll end up with the same thing. But the hacker won't know what position you guys started from and won't be able to recreate your changes after you've transmitted the first key.

Thanks!.
So it wouldn't be too difficult to implement something like this in a program such as tyler, so that every communication could be transmitted outside of standard encryption keys?.
I started to think about this a few days ago when i read that the NSA have made some breakthroughs vastly reducing the amount of time it takes to break standard encrypted messages coded in 128 and 256 bit keys.
I did wonder if all those server farms they built have been working on producing vast swathes of the encryption block, and now use a process similar to that used by the Enigma codebreakers at bletchley park, of matching up parts of the code against a database of held strings of encryption.
I am a writer/ artist not a mathematician, all just conjecture that passes through my "fractal factory".

Edit, is there anyway of determining what the best "Bit" level of encryption would be?.
edit on 7-7-2012 by The X because: (no reason given)

posted on Jul, 7 2012 @ 07:48 AM

Originally posted by The X

Originally posted by tinfoilman
reply to post by The X

Yeah that shouldn't be a problem. You would have to convert the cube positions to numbers that can be transmitted. This is easy. Then use whatever key exchange method you wish to use to transmit the numbers. Then your friend reconstructs the cube, either real or virtual, on his side from the numbers. Also easy.

Then after you've transferred the cube positions you would have each others cube keys from then on. Then you could use the cube position to generate keys for whatever encryption algorithm you wanted and send messages back and forth.

From then on If you wanted to change keys you could just send the changes, rotations, flips or whatever, but not the starting position. If he makes the same changes as you make you'll end up with the same thing. But the hacker won't know what position you guys started from and won't be able to recreate your changes after you've transmitted the first key.

Thanks!.
So it wouldn't be too difficult to implement something like this in a program such as tyler, so that every communication could be transmitted outside of standard encryption keys?.
I started to think about this a few days ago when i read that the NSA have made some breakthroughs vastly reducing the amount of time it takes to break standard encrypted messages coded in 128 and 256 bit keys.
I did wonder if all those server farms they built have been working on producing vast swathes of the encryption block, and now use a process similar to that used by the Enigma codebreakers at bletchley park, of matching up parts of the code against a database of held strings of encryption.
I am a writer/ artist not a mathematician, all just conjecture that passes through my "fractal factory".

It can be very hard to get right and correct, but not any harder than any other encryption program. If the coder makes one little mistake the whole thing can fall apart. But that's any encryption program. As for the math you would need to make it work, it's not anything I haven't seen before in different forms.

As for the NSA, the joke may be on them. It's a lot faster to make the key longer or switch encryption methods than it is to buy billions of dollars worth of machines and install them under a mountain. If everyone started using longer keys tomorrow the NSA could find themselves in a pickle with a bunch of worthless machines. I've started using longer keys in some of my projects already.
edit on 7-7-2012 by tinfoilman because: (no reason given)

posted on Jul, 7 2012 @ 07:52 AM
reply to post by tinfoilman

It's nice to know that the NSA could bankrupt america if the encryption was strong enough, and the desire to read it, compulsive enough.
What ideas do you have for where the future of cryptography goes?.

posted on Jul, 7 2012 @ 08:10 AM

Originally posted by The X
reply to post by tinfoilman

It's nice to know that the NSA could bankrupt america if the encryption was strong enough, and the desire to read it, compulsive enough.
What ideas do you have for where the future of cryptography goes?.

I don't really know. It's hard enough to even get people to use it all because it's the Facebook generation. People just upload their entire lives to FB and put it all out there completely unencrypted.

The only idea I've had recently is just kind of a hack to store file securely online. The idea was first to encrypt a file, then write a script to rip it into two parts, but do it randomly based on the key. Read each bit from file A and then the key determines if that bit goes to file B or file C.

Then upload each file to two different servers. That way no matter who owns each server they still only have a random half of an encrypted file with no way to get the other half.

But that's just kind of a hack. Haven't had a good idea in a long time.

posted on Jul, 7 2012 @ 09:57 AM
reply to post by tinfoilman

Wouldn't that increase the security of p2p files, even the tracker wouldn't know what the actual file is, all they would have is a half file of junk that cannot be read?.
That is a worthy project, especially if you could incorporate it into a torrenter, and make an easy to use intuitive GUI for the plebs like me to use.
You wouldn't even need to use VPN's after that.

posted on Jul, 7 2012 @ 04:30 PM
reply to post by The X

Yeah but the problem was, whoever I give the key and file locations to can reconstruct the final file. So the encryption works best if I give the key to as few as people as possible like my friends and keep the key off public sites like Pirate Bay so folks like the MPAA don't find it.

But torrents work the opposite. The more people you give the file to, the more people download it, and the faster the download goes. So they're kind of at odds with each other. You'd get basically the same result as the Freenet Project and even though it works, anyone that's used that knows how slow it is lol.

So, still some problems to solve there in the future.

top topics

1