One-Time Pad Encryption With No Pad?
thepooleboy writes: "The Globe and Mail has an article about a Toronto area company that has perfected 'Unbreakable Encryption' using the Vernam Cipher." The idea is to use as a one-time pad a large number generated by equations sent with an initial (proprietary) exchange which takes place when users connect to an equipped server. Since real one-time pads' numbers are by definition random and known in advance to both sender and receiver, though, the company seems to be playing fast-and-loose with their terms.
Depending on their "generator" function, they might have a decent cryptosystem or they might not, but IT IS NOT A ONE-TIME PAD by definition. Symmetric cyphers that aren't one-time pads can ALL be called "one-time pads" under that bogus definition, since generating a long sequence of random numbers to apply to the plaintext is pretty much what a cypher does.
And here I was just reminiscing fondly about ZeoSync the other day, when another scam pops up!
Otherwise known as the encryption key? That's hardly a one-time-pad.
"We've found an electronic way of handling those complex keys, and of regenerating them dynamically so that lists of keys don't have to be stored anywhere," Mr. Kassam said. Its still going to be a matter of cracking what equations make the keys. And seeing everyone who uses these equations once someone has a good deal of these, everyones security is fux0red.
I read this right after the September Eleventh attacks on the WTC.
Thankfully, Google remembered exactly where the original article was at.
http://www.aspheute.com/english/20010924.asp
---
Partner Linux Site
Actually, a correctly used one-time pad is unbreakable. The true randomness of the pad cannot be calculated, and if it's never reused, you have no clues as to how to calculate the encryption.
However, this scheme isn't a one-time pad. It's a function, with parameters encrypted with a standard encryption algorithm. If you break the algorithm used to exchange the parameters, you've broken the whole code. It's certainly no better than anything else out there.
Attempts to get around the fundamental limits of data encryption (and data compression, and a lot of other software fundamentals) remind me of all the pointless efforts to build a Perpetual Motion Machine. "Yeah, the smart guys say energy is "conserved", but anybody with any common sense can see if you just tweak this gearbox this way..."
I will use the secret powers of generating reproducable one-time pads to solve the equally overstated Bodacian challenge!
The world will be all mine, Pinky!
They have a program which generates new keys for each subsequent transaction, and they claim that this counts as a "one-time pad".
Nonsense -- a one-time pad is only secure because there is provably no way to figure out the keys without a copy of the codebook (assuming they were generated through appropriate random means).
As long as a program is producing the keys, they will exist in a particular sequence. All you need to do is figure out at which point in the random sequence you are, and then you can generate the rest of the sequence easily, allowing you to eavedrop on the conversation.
Admittedly, the article was fluff, but key-hopping doesn't significantly increase the difficulty of breaking encryption. Unless there is something else behind this that I'm missing, this is another "Compress random data by 99%! For real this time!"
ZFS: because love is never having to say fsck
So essentially they send the keys to the unbreakable cipher using a breakable cipher, sounds completely secure to me.
An algorithmically generated sequence of pseudo-random numbers is not a one time pad. They are misusing the term "Vernam Cipher" in the description of their product. Vernam/One Time Pads require truely randomly generated data, not a sequence you can determine with a small seed value.
- AlanH
Cryptographically secure hash functions like SHA or MD-5 are often used to convert shorter, shared numbers (the key) into a long bit stream that can be xor'ed with the file in much the same way as a one-time pad. This is done all of the time.
Let k be your key. Let b1, b2, b3 be blocks of bits. Take as many as you need to encrypt the file:
b1=SHA(key)
b2=SHA(snip(b1)+key)
b3=SHA(snip(
etc....
In fact, you can use any encryption function instead of SHA with a few tweaks.
My 26,740 Turkish Lira,
~ravyn
___
I'm an exhibit on the mounted animal nature trail.
No, one-time pad is mathematically proven as unbreakable. It's the _ONLY_ proven unbreakable envryption method.
Things ARE random. The noise made by compressed gas escaping from it's container is an example. So is stellar background radiation.
The Germans were using a variation on this in Cryptonomicon. The idea is that given an initial seed, you can generate a "key of the day" that appears random. In this case they're using an initial seed to generate a whole one-time pad.
However, it isn't secure. If you know the algorithm, you only(!) have to search the keyspace of the initial seed.
--
E_NOSIG
An encryption algorythim using a one-shot key known to both sender and recipient is nothing new. Definitely has a higher potential security than other methods. But not very practical for repeat business (eg, a secure web store).
Um, no. A one-time-pad is unbreakable. The idea is that you have a purely random set of bits (the one-time-pad) the same length as the data you want to encrypt. If you decrypt it using every possible one-time-pad you just end up with every possible message of the same length. If your message is "Attack at dawn.", with the wrong key you could decrypt it as "Retreat ASAP !!"
The problems are the "random" bit and distributing the pad from the sender to the recipient.
These guys appear to have a pseudo-random key generation algorithm, which by defintion isn't random at all.
finding their website was non trivial on google
its here
http://www.prescient.net/
Actually, it is possible to make unbreakable encription. At least in terms of text
Step 1: Generate a rather lengthy list of non repeating, as random as possible numbers.
Step 2: take the list and asign the letters of the alphabet in order along the list, (eg numbers in places 1 - 26 are assigned letters A - Z then 27 - 56 A - Z again.. and so on.)
Step 3: Make a duplicate of said list.
All communications are done with this code, using the numbers to represent letters, starting from the top, and use the number assigned to the fist instance of the letter, and proceed down the list for each use of the letter. (eg the first a would be the number in place 1, the second a would be the number in place 27)
As there's no pattren to it, it can't be broken. However, such a thing is so cumbersom to use, plus, there's the factor of how to get the list to the other party... Not a new idea, or even close to my own... read it in a book.
Nobody (at least nobody with any knowledge in the field) ever said that 1024 bit encryption was unbreakable.
Ugh... A story about a real cryptography breakthrough, followed up by PR for this snake oil. Timothy, you should have stopped while you were ahead. ;-)
The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
Actually, no. A one-time pad really is unbreakable if properly applied. One way of looking at it is that since the one-time pad is random and was not generated by algorithmic means, no algorithm can break it. Crypto folks use different terminology, but the result is the same: unless you compromise the pad itself, no decryption can do better than random chance.
These results are well established, and any decent text on information theory will fill in the details.
An interesting side-effect of this came up with some U.S. decrypts of Soviet espionage activity in the 1950s, which were decrypted when agents misused their one-time pads. The authorities didn't take any action, partly because they were concerned about proving in court that the decrypts were accurate...
...laura
no, a vernam cipher is the only form of unbreakable encryption. It happens like this: you have a stream of extremely random bits. And you have to make sure they are really really random, no pseudo random number generators. Say it's coming from a satelite up in space that measures radioactive particles(this was proposed in a paper not too long ago). Now the satellite streams these bits down to earth, so anybody can access them. Alice and Bob want to communicate securely over an insecure channel. So the agree on a series of bits to encrypt with. This can be anything from "every other bit" to a large polynomial function that says which bits to use. So every bit the function designates as an encrypted bit is used to XOR any message Alice and Bob use to communitacte. So, Alice computes bit random bit number x to encrypt bit y. She does XOR(x,y)->c and sends it to Bob. Bob also has this formula and performs the calculation to find which bit number x to use, then performs XOR(c,x)->y. The key is keeping the bit number function secret. Now, why is this secure? because anybody listening on the channel doesn't know the function(hopefully) and if your bits are truely random there is *no* way to distinguish whether any given bit can be 0 or 1. Try all the combinations for 0 or 1 in the message you want, but every permutation you want will look like the correct decryption.
- "Never let a computer tell me shit." - DelTron Zero
From the article:
Once the server is set up with E2Sec, anyone who logs on through a Web browser or Internet link will automatically be given an encrypted connection. A small 4- to 10-kilobit file, a bit like a Web cookie, is loaded into the client computer's memory. The file contains a program to generate random encryption keys, so that the keys themselves don't have to be sent over the network connection. The program is so tiny that even the low-powered processors in a cellphone can run it with ease, Mr. Kassam said.
This is really unbreakable. Unless you happen to intercept this program. Which wouldn't be that hard, and it may in fact be the same program for every client. And, they're touting this for wireless communications.
I found this next part interesting:
The client generates a series of random numbers to use as an encryption key. This is number is exchanged with the server through a secure process known only to Prescient, the server uses it to encrypt any information it sends back to the client, and then the key is destroyed and a new one is created. This process is repeated every time information is exchanged between the client and the server, making it virtually impossible for outsiders to decrypt the information.
It's a well established fact that non-open, secure processes are not secure. Cryptography is difficult, folks. The only way to even come close to proving that a particular process is secure is by exposing it to the scrutiny of the entire global community. Even then, its a case of proving that something is NOT true, which in this case involves incredibly complex mathematics that don't work for half of the proposed protocols out there; for instance, for a particular protocol to be 'provably' secure, it has to be time reversible (that is, if you apply any one step in reverse, the encryption key and cipher text each go back to their state before that step)
"We're 100-per-cent confident in our technology," Mr. Kassam said. "To give an idea of how difficult this is to crack, many organizations consider 128-bit encryption, which has a [cryptography level] of two to the power of 128, to be very secure. With e2Sec, we're talking about encryption in excess of 5,000 bits, and as much as two to the power of 10,000."
Ummmm... comparing asymmetric encryption to symmetric encryption (of which a one-time pad is a subset) with key-lengths is like comparing apples to oranges. In asymmetric encryption, your security is in your keyspace... every bit doubles the time to search the keyspace. In symmetric encryption, security is all about the keys; symmetric encryption is so easy to do that you can try millions of keys a second, as opposed to thousands or hundreds, so you HAVE to have a big keyspace. But, most symmetric encryption algorithms allow you to get it partly right; if the key is partly right, you get a partly decoded message, so the search algorithm is linear instead of exponential.
I am disrespectful to dirt! Can you see that I am serious?!
You have to read a 600 page book
http://www.cryptonomicon.com IMNSHO the best funniest geekiest book ever written. Basically during the WW2 part of the book they are using one time pads and one of the ways they are producing the random numbers is by having a Vicar's wife pull balls out of a bingo machine. Well she starts to peek and then the numbers are not quite random and so a German is able to crack their one time pads.
Cypherpunks: Civil Liberty Through Complex Mathematics. Those who live by the sword die by the arrow.
Actually a one time pad is mathematically proven to be secure. The biggest problem is that a protocol using it is much tougher to find.
A one time pad is completely random therefor you could take any message, "Bob had a car" and it could decrypt to ANY message of the same length, given the right pad. The biggest problem with a true one-time pad is that as the name implies it can only be used once, and needs to be the same size as the message its encrypting.
The best practical example of one-time pads is probably the hotline between washington and moscow. The crypto course I took explained that a very very large random one time pad was created to encode the message, and new pads are periodically created and taken by curier to each site. I believe a similar method is also used for transmitting launch codes to Nuke site.
Then again its been over a year, and my memory of the course is a little fuzzy.
Note to author: If you are not in the know, don't write as if you are.
First off, the OTP is completely 100% unbreakable [in theory]. Even with infinite time an OTP is unbreakable.
No symmetric key system, even a really super-duper one can get that type of security. I mean sure, you could make it require 2^1000 time, but that isn't unbreakable. That is "not likely to be breakable", a strong difference.
Second, this is not the first company todo so. In fact the sci.crypt snake oil journal is full of similar companies. Any company that cites "unbreakable" and "OTP" when talking about their inhouse crypto is very suspect. Real credible companies don't play on such naive terms. RSA for example will play on the reliability of the code more than they will about the breakability of their ciphers they use [e.g. RC5/DES/AES]
Third, if it is not a OTP then its not a OTP. These "OTP-like" and "pseudo-OTP" phrases you read here and there are meaningless. Either its an OTP or it isn't. There is no half-way inbetween.
Fourth, as I read it you download a program that generates a stream? This is nothing new. What the heck do they think a stream cipher is [re: a block cipher in CTR mode is a good candidate]. What they don't say is if you make a 1000-bit pad with a stream cipher you're not supposed to think of that as a 1000-bit key for a message as in you have 1000 bits of entropy. If you use a 64-bit key to seed a cipher to make 1000-bits for a 1000-bit message than the key is still only 64-bits and you just stretched the entropy over 1000-bits.
e.g.
Entropy In >= Entropy Out
Fifth, everyone please laugh at the shameful cloakware people. Shameful! www.cloakware.com, they are an even bigger canadian joke.
Tom
Someday, I'll have a real sig.
A one-time-pad is unbreakable provided that the pad itself doesn't fall into enemy hands. This is a fact and can be proven mathematically. Provided that you have one bit of randomness for every bit of the message, it cannot be broken.
This company is claiming unbreakable encryption because they have something like a OTP but have worked around the problem of having to transfer the pad itself. 'This is number is exchanged with the server through a secure process known only to Prescient'.
Okay, great. So now, instead of attacking the one-time-pad encryption, which we know is unbreakable if implemented correctly, hackers will now simply have to attack this 'secure process known only to Prescient'.
Snake oil. Their entire product really has NOTHING TO DO WITH ONE-TIME-PADS but instead, relies on a proprietary, secret algorithm that they won't tell you. At BEST, this is misleading. Their security is not unbreakable. It is far _less_ likely to be unbreakable than any other widely-known encryption algorithm. They are selling snake oil.
Oceania has always been at war with Eastasia.
Dude, calm down a bit. You have very valid points, but if you insult the eds like this, the chances of a bitch-slap are pretty high.
thanks, and have a good one.
Sent from your iPad.
Certainly, a one time pad is only a one time pad if it is *truly* random. Unless the machine generating it has a true source of randomness---like a chunk-o'-radium or a pop-a-matic bubble---then they've just pushed the encryption somewhere else, and gained no security.
It still could be useful to generate such pads, since some devices (cell phones, etc.) don't have much processing power, and this is a way of offloading the encryption to a more powerful machine. Of course, you still need a secure method of transferring the pad.
But it doesn't sound like this is what they're doing, since they claim not to store the pad anywhere...
I'm dubious---encryption is only as good as the weakest link.
..."unsinkable" is to "ship"
I have two things to say:
1024 bit, while not unbreakable, is still unbreakable in the lifetime of the universe. I have no doubt methodologies and processes will be developped in the future that will change this, but as of right now, for all intents and purposes, it's unbreakable
Secondly, many parts of quantum mechanical behaviour *are* random, especially at macroscopic scales. For example, when a particular radioactive isotope chooses to decay is completely random; I've seen military random number generators that depend on this or similar effects to create truly random number.
But, no purely software random number generator will ever even come close to approaching randomness.
I am disrespectful to dirt! Can you see that I am serious?!
decipher this:
kjashduyqwhasklasj
Underneeth each letter I put the row of the keyboard that the key belongs to.
kjashduyqwhasklasj
222222111122222222
Thus usuing me l33t 5kilz - I have determined that your keyboard is missing its entire thrid row of keys.
Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.
What's missing here is a definition of snip(). It's a good idea to leave out many of the bits at each stage. SHA produces 160 bits, for instance. Let snip(b1) take the first 80 bits of b1 and ignore the rest.
Let + stand for concatenation.
Exactly. To look for the weakness in any of these schemes look for the bit that is "secret" or "proprietary". This is getting to be a tiring trend. Maybe /.'s editors could do us a favor and research some of these stories before they post them.
So the program is transmitted through breakable encryption.
So the keys are generated using a pseudo-random number generator, which makes them quite guessable.
Then the key is transmitted over the network via breakable encryption, which they just said they wouldn't have to do.
Working OTP encryption requires the random numbers to be truely random, a computer programm can't do that. You need a source of randomness in the computer like the user or a special hardware random generator. The user isn't a solution for random numbers for OTP because you need a lot of random numbers and the user will have to type or move his mouse for a very long time until he has produced enough random numbers for a OTP encryption of a short file.
Here the real problem of it. OTP encryption is only secure if no one can get his hand on the One Time Pad. If the OTP is transmitted over the internet, someone could easily get the OTP. If it is transmitted using a "secure process". The encryption is only as save as this "secure process". If this process is breakable, the whole encryption is breakable.
The "secure process" is also only known to Prescient. Everyone knows that "Security through Obscurity" doesn't work.
Jan
The file contains a program to generate random encryption keys, so that the keys themselves don't have to be sent over the network connection.
The "book" method cannot be cracked by intercepting the message, true. How to solve this method? Steal the book. As has been pointed out in several previous stories of this genre, encoded data at some point has to be decoded and that makes it vulnerable.
The client generates a series of random numbers to use as an encryption key.
There's no such thing as a truely random number. There will be a way, no matter how difficult, to predict pseudorandom numbers. Especially if you've got a copy of the random number charts already. (Perhaps stolen the book?)
Exceptionally difficult to break, this encryption may be. But it is not unbreakable.
What's in a Sig?
until your explanation, it was, in fact, not funny.
The Kruger Dunning explains most post on
I sometimes wonder if the eds intentionally post crap, just to get companies shot down. And what exactly will Prescient's venture capitolists say when they learn that the geek public thinks Prescient's product is worth crap?
I mean really, I doubt Timothy is trying to sell this to us. He's just preaching to the choir. And if Prescient was public he probably would of shorted a couple hundred shares before posting the story...
What you're describing is an implementation of a one-time pad system. This is slightly different than the ones I know and may not be secure, but it's almost quitting time and I don't feel like looking anything up.
One must assume that 'God' (Commonly defined as an all-knowing being) is capable of breaking one-time pad encryption systems.
I am not aware of any research into the creation of cryptosystems designed to resist compromise by supernatural forces, much less any system that can resist an attack by an omniscient, omnipresent, omnipowerful opponent.
I do not deploy Linux. Ever.
"It's not a war on drugs, it's a war on personal freedom. Keep that in mind at all times." Bill Hicks
This system is using a pseudo-random number generation algorithm, albeit a changeable one, which means that with a very small amount of data it is possible to completely predict the entire key stream. That means that the "amount of information" really contained in that stream is very small, since a small algorithm completely defines it.
This is what one of the other posters was referring to as "key space". How much information must be guessed in order to decode the message?
For these snake-oil vendors, the amount of information that needs to be guessed to decode a message is only as big as the pseudo-random algorithm (or likely smaller, since these guys obviously don't know what they're doing). If you crack the beginning of a message, you've cracked the whole message no matter how large.
For a real one-time pad though, the amount of information which must be guessed is as big as the entire message. No matter how much of the message you "crack", you'll have no more advantage to cracking the rest than you did before. Each element is random. There is no "method" to predict random numbers and so there is no way to crack a true one-time pad.
I am so sick of hearing that mantra over and over again.
Obscurity is one facet to security.
Obscurity on it's own is NOT security.
Given their method is proprietary and secret, you have no way of judging whether it is secure or not.
say oracle claimed to be ....
honestly no matter how or what you use to encrypt things given a long enough time span someone WILL break it
much like on a long enough timeline the average survival rate WILL equal zero
Ave Molech Setting
No, actually, a true Vernam cipher really is unbreakable. Check out the description of it in Bruce Schneier's "Applied Cryptography". The 'one-time pad' that was mentioned is a string of random numbers as long as the message that you want to send that is XORed with the message. Since XORing is a symmetric process (do it twice and you get back your original message), if you've got the random pad you can decrypt it easily.
That being said, the process they described in the article is not a Vernam cipher. It sounds like a variation on the Kerberos protocol, where the client and server machines exchange encrypted session keys.
There are also problems with the design, if you ask me. It looks like they are using the client computer to generate "random" numbers, which is a definite no-no. It also says that the keys are exchanged "through a secure process known only to Prescient". Sorry, but unless they have some sort of review by an independent party that proves it's
secure, it's an empty claim. Basically, this sounds like a lot of PR-hype that won't hold up to its promises.
cotodoso
However, the one time pad is simply a method of transporting a secure channel through time...
In order to have a one time pad, and be perfectly, provably, secure, you must at some point earlier in time (maybe face to face in a secret bunker, where there are no bugs or cameras or tempest devices etc.) have had a secure channel over which to transmit and receive the pad.
The pad lets you transport that secrecy to another point in time. However, you must have had the secure channel in the first place. Are you sure that bunker is as secret as you think it is?
So yes, it's mathematically proven, but it's often very hard to set up in practice, because the preconditions are strict.
THL.
Keeping
Mr. Pig Hogger,
The atrocious content of your sig not-withstanding, I ask that you read the whole article before quoting part of it in a reply.
Your comments were echoed by said editorial staff in the article as it appears on the front page.
Meanwhile, could someone moderate this karma-bomb down? I'd like to think that swearing a lot and then repeating a standard slashot rant (right or wrong) is not woth a positive moderation.
Thanks.
In an effort not to pre-judge - I looked at their whitepapers @ http://www.prescient.net/Solutions_e2Sec.htm
And their paper on this has some merit:
http://www.prescient.net/pdf/e2Sec.pdf
But I am not qualified to debate its merits. I don't believe that a public newspaper will have the technological background to satisfy the slashdot folk who like that sort of thing.
No, this is incorrect. OTP is secure in the following fashion:
Consider aaaaa as an OTP encryption of something. Then, hello and quack are equally good decryptions, and there's nothing that tells you what the original message was.
Dear Slashdot editors: A one-time pad is provably unbreakable provided you meet the very strict, precise definitions for what a one-time pad is.
Once you make the slightest change, it's no longer a "one-time pad", it's "a new unproven proprietary crypto system." There are NO exceptions to this rule. Any time you post a story that says, "Company X has a one-time pad system that is different than other one-time systems", they don't really have a one-time pad system, and you're just promoting their snake-oil for them. The OTP unbreakability is a mathematical proof, and you can't change the axioms and just claim the proof still holds!
Seriously, NO exceptions. Don't be tempted by their fancy footwork and wiley ways; they're trying to fool you
Can a company come up with a new cryptosystem that's cool? Yes, but they'll have to do a lot of hard work to prove it. This doesn't meet that standard.
Whatever the merits of this code - by definition it ain't a one time pad!
-- SIGFPE
RSA has been doing this for a long time.
If you use Linux, please help development of Autopac
The company is flat out lying. Or incompetent. They are *NOT* using one-time-pads, and they are *NOT* using a Vernam Cipher. If they were, then yes, it would be unbreakable encryption. But they aren't. They are generating a sequence of psudo-random numbers. Just like any streaming cypher. Generating a list of numbers and calling it a "pad" does not make a bit of difference.
Either (A) they do not understand cryptography, or (B) they are intenionally lying about their cryptography. Either case is a good reason not to trust their cryptography.
-
- - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
Given infinite time, a monkey will eventually bang out the contents of the OTP.
Sure. The question is: How will you know it when you see it?
The monkey will bang out every possible n-bit sequence. Applying them all to the n-bit encrypted message will give you every possible n-bit message. So you'll get all of the following:
So, how, exactly, will you know when you've found *the* message?
That's why an OTP is provably unbreakable. Because every pad is equiprobable. And that's why no algorithmically-generated pseudo-random sequence can be used for a one-time pad.
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
Ummmm... comparing asymmetric encryption to symmetric encryption (of which a one-time pad is a subset) with key-lengths is like comparing apples to oranges.
This much is right.
In asymmetric encryption, your security is in your keyspace... every bit doubles the time to search the keyspace.
This much is nowhere near right. According to our best estimates at the present time, it'll take on the order of 2**80 operations to factor out RSA-1024. It'll take on the order of 2**128 operations to factor out RSA-3072.
Adding two thousand bits doesn't increase the difficulty by 2**2048... only 2**48. Asymmetric crypto does not double in difficulty with each added bit.
In symmetric encryption, security is all about the keys; symmetric encryption is so easy to do that you can try millions of keys a second, as opposed to thousands or hundreds, so you HAVE to have a big keyspace.
This is not correct. In fact, it's downright astonishingly wrong. The problem is you're assuming symmetric and conventional, non-ECC asymmetric keyspaces are both flat (they're not). But if they were flat, then asymmetric crypto would have a keyspace multiple orders of magnitude larger. Which is the opposite of what you're asserting here.
Conventional, non-ECC asymmetric keys are so huge because most of the keys are weak. Let's compare DES to RSA. Is 0xFA810DD0 a legitimate 64-bit DES key? Yes. (Note: DES only uses 56 of those bits for key material; the other 8 are used for parity.) Is 0xFA810DD0 a legitimate 64-bit RSA key? No. Why? Because 0xFA810DD0 is an even number, which makes it much, much easier to factor.
Conventional, non-ECC asymmetric keyspaces are so huge partially (not exclusively) because most of the keys in that keyspace are unusable. Symmetric keyspaces are so small partially (not exclusively) because most of the keys in that keyspace are usable.
A keyspace in which all (or the overwhelming majority of) keys possess equal strength is called a "flat" keyspace. A keyspace in which some keys are stronger or weaker is... well, non-flat.
But, most symmetric encryption algorithms allow you to get it partly right; if the key is partly right, you get a partly decoded message, so the search algorithm is linear instead of exponential.
This is so wrong that it staggers the imagination. Claude Shannon established some principles back in the 1940s which still guide cipher development today. One of these is called the avalanche effect. The idea behind the avalanche effect is that a single one-bit error, anywhere in the enciphering/deciphering process, will affect the output of half the bits in the entire e/d process.
Go ahead. Use Blowfish with a 40-bit key. (There are lots of Blowfish implementations out there; if you want one, email me and I'll send you one.) Encrypt it with one 40-bit key, and then decrypt it with a key that's only one bit different. You'll get absolute, total, gibberish. You'll get gibberish because Blowfish is a well-designed cipher and avalanches properly.
But wait--it gets even worse. Only a chump runs a cipher in electronic codebook mode. Usually, ciphers are run in a block-chaining mode, where every subsequent block gets XORed with the prior block. So if you have a one-bit error in your process, that will affect half the bits of the block... which then create errors in half the bits of the next block... which avalanche... which propagate their error forwards, on and on and on... etcetera.
You get the idea.
(All of the above information can be found in either Bruce Schneier's Applied Cryptography, 2nd Ed or Menezes, Oorschot and Vanstone's Handbook of Applied Cryptography.)
Given the amount of data needed in a one-time pad, I can just imagine someone in the CIA firing up his computer program and saying "Give me 500 pages of one-time codes" :-).
All computer programs in slot machines and such are submitted (source, *source*) to some state agency, who examine the code to make sure it has no backdoors. One enterprising examiner noriced that a certain blackjack game did not reinitialize its random seed. He copied the random number generator code to his laptop, sat in a bar with a cell phone listening to his buddy report what cards came up, and within a short time knew what to play to win.
Both went to prison, as I heard it.
Infuriate left and right
Please explain how you use a one-way hash to send large amounts of data.
My understanding of one-way hash functions is they are usefull for comparing information like passwords or digital signatures, but not encryption. If you hash a message and send it to me, I can't un-hash it (because it's a one-way hash) I'd have to guess what the data was and then hash my guess to see if I was right.
Si vis pacem, para bellum
The only thing more annoying than a Libertarian is an (un|mis)informed Libertarian
So the keys are generated using a pseudo-random number generator, which makes them quite guessable.
Not necessarily. ANSI X9.17 is both a specification for a PRNG and a family of PRNGs. The ANSI X9.17 generators I've used (and coded) in the past have passed every test for statistical randomness I've thrown at them, for datasets ranging from 16 bytes to 16Mb.
We do have good PRNGs. The biggest problem is that people don't use them, instead trusting in their own "proprietary and special" PRNG.
Not all ciphers are long sequences of random numbers.
Block ciphers are bijections between Z_2^p and Z_2^p, where p is the block size.
That didn't work out, of course, and a lot of changes happened to make ocean travel safer. The "obvious" one -- more lifeboats -- is actually pretty unimportant. What is important? Safety training for ship's crew, disaster drills for passengers, the International Ice Patrol, and the requirement that emergency radio frequecies be always monitored. Complicated, boring, you'll never see it in a movie -- but these measures have saved thousands of lives. I'm sceptical that "more lifeboats" or "oh gee, it was sinkable!" saved even one.
I see the same oversimplification in encryption. Mathematicians who claim their algorithms are "unbreakable" are not in denial. They're simply thinking too narrowly. There actually are encryption algorithms that can't be broken (at least by any known attack). But "unbreakable" is only true in a certain context. You have to assume that keys are generated in exactly the right manner. That brings you into the real world, away from the pristine certainties of mathematics.
So in an absolute sense, there's no Unsinkable and no Unbreakable. But dealing with these facts is more complicated than people like to bother with.
Unbreakable encryption is easy. I can write a program in under five minutes that will encrypt a file in such a way that I would be willing to guarantee, in cash, that it could never be broken. Simple algorithm, too:
"Make it ten--I am only a poor corrupt official."
--Captain Louis Renault (Claude Rains), Casablanca
One step at a time, Cmdr!
How come editors post offtopic and get away with it? I've been rtlbed (or was it rtbled) for that.
Gentlemen, you can't fight in here, this is the War Room!
I have heard it suggested that sampling certain types of electrical/electronic/magnetic properties of the computer and synthesizing them (probably with a similarly random weighting) into a key could produce a truly random key.
Mind you, this is not exactly algorithmic... this involves data sampling from the physical univers.
I'm still waiting until we discover that _everything_ has an underlying pattern... then who'll be laughing last? *heh*
-- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
The thing described here is not unbreakable. The random bit generator could be co-opted. The polynomial function could be guessed or even deduced.
(To make sure it's really from HEMOS, just look at the parent post, which had been moderated into oblivion). Au contraire, I loooove it here; that's why I have dozens of pageviews per day. (And he checked the access log before bitching to me).
And sour-puss comments like that by the editors certainly won't make me subscribe!!! (No wonder *ALL* my stories get rejected...)
I guess I could make a crontab job to reload the main page every 5 minutes or so. Naaah, it's not worth the waste of bits.
tell me Adobe interlaced the word "encrypt" with the actual text, thereby claiming the work was "encrypted". Could just be an urban legend, but you gotta love it.
When in doubt, have a man come through a door with a gun in his hand.
Once upon a time, 1024-bit encryption was considered secure, until some guy proposed a plan that could get you a 1024-bit crypto breaker for $1 billion.
Some day, this too will be breakable, but there is only one truly secure way of protecting data that will never fail. It was described in Pulp Fiction:
"Your father didn't want them to find your birthright, so he he hid it in the one place he knew it would be safe: his @$$! And when he died of dysentery, he gave the watch to me and I hid this uncomfortable piece of metal in my @$$ for 4 long years. And now, little man, I give it to you."
You haven't studied quantum mechanics, have you?
Actually that was pretty much Einstein's position. He refused to believe QM to be random and insisted on a determinstic universe.
The point is that QM theory does not and indeed according to itself cannot tell us wether the universe is genuinely random on that scale or whether there is a layer of hidden variables whose inner workings are not observable.
But getting back to the algorithm, the system described is not a one time pad, it is a stream cipher. I tend to avoid stream ciphers myself in favor of block ciphers. While there are good stream ciphers arround a stream cipher is much more fragile and much more sensitive to the exact circumstances of its application. The WEP protocol would merely be bad rather than broken if they had specified a block cipher. The reason they use a stream cpher is that they can be made fast.
Looking for an Information Security student project suggestion?
Try http://dotcrimeManifesto.com/
It's because it's not really an editor, it's someone who is pretending to be an editor, that's why. Hemos is user #2, whoever this guy is is #520833, ergo it's not really Hemos whos talking to you there.
slashdot!=valid HTML
But that's not what these guys have. They have a stream cipher -- linear congruent generators (pseudo-random sequence generators) on both sides of the connection. The "random numbers" are not actually random, because computers are detirministic -- given two computers identical programs, and identical inputs to those programs, you will always get identical outputs. "Breaking" a stream cipher generally consists of identifying the part of the encrypted text that has known text in it, extracting the key value of that part of the output, and using that to predict future or previous parts of the message. Thus design of stream ciphers is difficult, and you're better off using one of the tried-and-true designs of stream ciphers. For AEScrypt, I chose to use AES (Rijndael) as the permutation function, and CFB-128 as the feedback function that hides patterns in the output stream, with a 128-bit 'random' salt value to insure that the generated streams are not identical for two messages encrypted by the same AES key
It appears that their variation is that they have multiple algorithms for producing their stream of pseudo-random numbers. Does that produce more strength? Yes -- but less than you'd think. If you have two different algorithms, for example, that's basically a 1-bit addition to the key strength. If you have 1024 different algorithms, that's basically a 10-bit addition to the key strength. Big friggin' deal, you can already use 256-bit keys with AES, where the heat death of the universe will happen before you crack a message via brute force.
So basically these guys have a really clunky stream cipher, that they're calling a "one time pad". There's a saying in the crypto industry: simpler is better. That is, the more things you add to a cipher, the slower it goes, and the more likely that you made a mistake that ends up with the cipher broken. AES (Rijndael) is a simple and fast cipher that is easy to analyze mathematically. CFB to mask the output of a block cipher being used as an LCG is a simple and well-analyzed function. A LCG (Linear Congruent Generator) based stream cipher with 1024 possible brand-new pseudo-random generators (as vs. well-tested and well-analyzed ones) has 1024 possibilities for a "crack" of one of the generators (i.e., the possibility of predicting future sequences based on known text in a particular place in the message), meaning that all past and future messages using that particular algorithm are cracked.
This is offensive to me, in other words -- offensive from a language viewpoint (calling a LCG a "one time pad"), and offensive from a design viewpoint (adding unnecessary complexity that makes the design hard to analyze mathematically).
Snake oil. NEXT!
-E
Send mail here if you want to reach me.
Then the point returs: who cares? Is Slashdot also going to alert us about inaccurate palm readers and deceitful telephone psychics? (Please don't submit a story with a headline like "Jamaican psychic Cleo claims she can accurately advise you on your life decisions" and then wait for readers to uncover that her claim is actually inaccurate.) Really, we should know better. The editors here should know better.
I wish we could see a list of the stories they rejected today. (Nothing from me; this isn't personal.) I think we'd then see there is a lot of real nerd news going on while we are being fed bunk.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
Doesn't matter, it's STILL 100% secure (again assuming the pad is truly random). The thing is you just DON'T KNOW what it is that I'm trying to say in the message. Even if you can guess, it doesn't help you. You don't know what is plausable or not ebcause you don't know what I'm trying to say. IF you did, you wouldn't need it decrypted. Even if you have a general idea, it doesn't buy you anything. Suppose you know I'm going to tell the guy on teh other end to meet me at certian coordiantes. Fine, you don't know how I chose to phrase that, so you have nowhere to start in the decoding. However for argument's sake say you even know the exact for of teh message. You know I will write it like this:
"I will meet you at the folowing location: XXX XX by XXX XX" where the Xs are the degrees and minutes of the two coridnates. Still buys you nothing, you can decode those into any combination of cordinates you want and yuo have no way of knowing which one is correct.
The problem is with a one time pad, like the orignal poster indicated, literally ANYTHING within that space is possable and since it is truly random (if done right) you just can't know when you have the right answer. You might decode something that you belive to be perfectly correct, it looks totally plausable, and still be dead wrong. You'd do just as well guessing at random with messages the same length as the encrypted document.
Further, you have no way of knowing or being able to tell if what I send was in the form you expected. Maybe it's all BinHExed, maybe it's gziped, maybe it's ROT-15'd. You just can't know.
If you want to try it I'd be happy to generate you a message encrypted with a one time pad and you can try to crack it. I'll even be generous and tell you the prices format it's in and tell you what the topic is. You'll still never crack it, and that's more information than you'd normally have when dealing with a message so encrypted.
And I didn't bother pointing out that because these folks have no clue what a mathematical proof is, they didn't bother showing how their system preserves the properties of a OTP algorithm.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
It's possible that the GSM crack did - I'm not sure if the pseudo-code that Ian analyzed over lunch one day, which he got off the net, was originally posted by somebody who violated his licenses in the process (or at least, how *badly* the alleged poster allegedly violated the alleged licenses :-), or whether the poster had access to the code because of a procedurally or contractually careless licensee. But even if that was the case, anybody who seriously wanted to crack the code could have probably grubbed the crypto algorithm off the chip in a phone, at the cost of a phone and a bunch of expensive chip-shredding hardware, though some of the authentication algorithms might have required examining a base station if they had been designed asymmetrically.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
The so-called technical white paper was one of the worst I've seen in ages.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
I worked with a company that licenced the use of another company's "one time pad" encryption system. The long and the short of it is that it wasn't "one time pad". But the really important part was how the President/CEO of the encryption company honestly felt it was. No arguement (like the fact that an attacker only had to guess 4096bits to have all the information needed, and that analysis of data would quickly cut chunks of that down) could dissuade him from his belief. He had this whole, weird, meta logic that abstracted the problem out of the first tier (cracking the generated keys, which ostesibly were pretty random as individuals) but into the second tier (cracking the key generator, which was very structured and had 4096-bits of input). Because it was a meta problemone level up, he could see the problem, in the same way that Christians are fine with "God created the Universe" and don't see "Who created God" as a problem.
-no broken link
Bernstein had a fundamental problem with his proposal... basically the proposal is a diagram of how to make a large number of cheap (low memory, high speed) processors work together on a decryption. He does have some novel hardware devices that can speed up the process, but his supposed speed improvements all rely on one critical assumption:
That these processors are connected in a network that is zero-latency and infinite bandwidth.
The only way to truly provide something like that would be a network whose total bandwidth is greater than the combined clock speed of all the processors. That means that if you have 2^n processors, you need n network connections for each processor, in a large parallel array, commonly known in parallel computing as a hypercube. Let's say you build a machine of 8 100MHz 8-bit processors. Each processor gets 3 connections, all of which are 1Gbps. The total number of these connections are equal to the number of edges in a cube: 12, because that's how these processors are connected. Each processor is at a vertex and each edge is a connection. Add 8 more processors, and you get 32 connections.
For any machine sufficiently large enough to break a 1024-bit key, the cost would currently be greater than the entire economic output of earth for years. No doubt as high-speed networking technologies continue to be reduced in cost, this will change, but right now, Bernstein's proposal is unimplementable.
I am disrespectful to dirt! Can you see that I am serious?!
Example: nobody knows whether chess is a forced win for white. Why not? All you have to do is run through every possible game. The famous Deep Blue could run that in a mere 10^100 years. Bearing in mind that current cosmology says that the universe will have collapsed by then. But maybe the steady-state folks are right after all...
Similar considerations apply to modern encryption algorithms. A brute force attack just won't work, provided the encryption key is long enough to force the necessary billion-year execution time.
Anything which can be decrypted is going to be breakable. It may take a good deal of effort, but I don't believe there's any such thing as 'unbreakable' encryption. After all, the data has to be decryptable at some point or it's useless.
And what about the LIARS POKER method? This was detailed in a Scientific American article from a few years back. The idea is to create a huge randomized key which both senders have (ergo in the Liars poker game, two dollar bills serial numbers). The exchange begins with one side saying, "I believe if you add the digits at locations 567, 9984, and 12355 the resulting number is 13." And so on for a few thousand exchanges. Then the other sender gets the chance to play. Then they use known location data on the other person's computer which hasn't been exchanged yet in the previous inquiries to encrypt their data. The receiver then has only a small keyspace to translate the message back to the original.
The problems fall back to the need for a physical exchange of data files. That is why trapdoor encryption is just so seductive and ultimately doomed to be openly cracked like an eggshell in the next 12 years. Brute force is getting much easier with every innovation and stifling that is futile.
"Face it, a nation that maintains a 72% approval rating on George W. Bush is a nation with a very loose grip on reality.
And that's why no algorithmically-generated pseudo-random sequence can be used for a one-time pad.
Learn to read next time, huh?
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
The NFS doesn't care how big or how small the factors are--it just finds them. If 113 is a factor, the NFS will find it. :)
Yay.. someone who noticed.
I have to admit though, the only thing more pathetic than someone faking an editor's name to draw hits to his website, are the hoardes of idiots who blindly believe who it is on name alone (the user # obviously isn't a bold enough hint)
*sigh*
-Restil
Play with my webcams and lights here