5 ms·
Ask HN: Paired USB keys for 100% unbreakable encryption?
Just a thought:
* 2 USB keys that share a securely generated amount of random data.
* Share one with somebody you'd like to communicate with.
* The two keys can encrypt/decrypt messages to each other using that random data as a one-time-pad. http://en.wikipedia.org/wiki/One-time_pad
* You can then transmit messages across the net in plaintext. You can even tell your partner which part of the pad you are using.
Technically, one-time-pads are impossible to crack. You'd only have to watch out for observation attacks and that sort of thing (perhaps the keys would could be bootable for extra security?).
The keys would only work for a certain amount of time before needing to be "paired" again, their pad data would eventually run out. But with modern keys holding many GB of data, this would take a while.
Obviously this is only for the super-paranoid (or the geeks) who want to chat 100% securely among friends. But hey, 6 months ago only the super-paranoid were using encryption at all and look where we are now.
- zxcvgm 13y agoThat kinda sounds like iTwin http://www.itwin.com/ http://www.itwin.com/ It comes in a pair with 2 USB ends and can be mated together to share a key.
- heeton 13y agoYep :) Spot on, need to buy one of those. Good to know someone is doing this!
- TheLoneWolfling 13y agoYou can do this already - just take two flash drives and mirror the same random data to each one. Just make sure you never use the same part of the random data twice. Of course, I have to ask: why bother? If you're giving them a flash drive anyways, just exchange public keys. Also safer, as if someone loses/etc. a public key it's no big deal whereas if someone loses the OTP then all of the data you sent is trivially decryptable.
- heeton 13y agoYea techies can do it but it's not simple/easy to use. I couldn't give my mother a key to use. I suppose something about the pure security of a OTP is enticing. Public keys can be broken, it's just not feasible at the moment. I don't know enough here, but it seems like past data sent via public key will eventually be trivial to decrypt? Losing a OTP is equivalent to losing a private key, not much changes there. I suppose if your partner was "coerced" then a OTP exposes both sides of the transaction, whereas knowing their private key would only help decrypt your messages to them.
- vmarsy 13y agoIn theory yes, but if you're super-paranoid good luck to find "a securely generated amount of random data."
- fernly 13y agoI don't understand "You can then transmit messages... in plaintext." A message composed of SERHYTVXA etc is obviously encrypted. But another question: by how much is the system weakened if the pad data is nonrandom? Because I was thinking how much simpler the key exchange would be, if instead of sharing pad-texts, you only shared links to texts that were available on the internet -- both parties to use as a pad the text of a particular Google Book, or Internet Encyclopedia of Philosophy article.[edit below] Another option would be share only a "persistent identifier" to be used with [0]. [0] http://www.random.org/integers/?mode=advanced http://www.random.org/integers/?mode=advanced [edit] clearly you would not want to access the pad at any time near to transmitting a message encoded with that pad! You would download the pad data at some other time, preferably with another ID.
- Ellipsis753 13y agoIf the pad data can be worked out or is known then the "encryption" is useless. If you use something like a book and the book used is unknown then it could still be found if someone can work out part of your message though guess work. "They sent a 5 letter word, I'm guessing it was "hello" therefore the first part of the book they used must be........". If you send the pad across the internet at all it could be recorded at many points along the way. While it still might not be cracked you'd certainly do better using proper encryption.
- tptacek 13y agoNo professional or academic cryptographer in the world does this. Consider asking yourself why. It isn't because they haven't heard of a one-time pad. When Schneier wrote about one-time pads in Applied Cryptography, he wasn't doing it to establish the high water mark for best possible crypto; he was doing it to illustrate some of the theory that underpins modern ciphers. Unfortunately, a whole generation of amateur cryptographers took a different message away: "forget about modern block ciphers, let's just use one-time pads". Encrypt your content with AES-128 with a random (from /dev/random) key; write the key down as 32 hexadecimal digits. Nobody is going to break it, ever.
- sillysaurus2 13y agoEncrypt your content with AES-128 with a random (from /dev/random) key; write the key down as 32 hexadecimal digits. Nobody is going to break it, ever. There are caveats. Don't reuse your key, because if an attacker can trigger your AES encryption on demand, and you're reusing the same key, then the attacker can break your encryption after alarmingly few operations. https://dl.dropboxusercontent.com/u/315/articles/Cache%20Attacks%20and%20Countermeasures%20-%20the%20Case%20of%20AES%20%5BShamir%2C%202005%5D.pdf https://dl.dropboxusercontent.com/u/315/articles/Cache%20Att... (That's a different situation than "write down the key," but we're throwing around ideas in this thread, so I just wanted to make sure everyone knows not to write software that can be triggered on-demand to AES encrypt some content with an unchanging key. I could imagine someone being tempted to write a chat program like that, and an attacker will rip its security to shreds using sidechannel attacks.)
- tptacek 13y agoThat's not actually what that paper says. It says that if your AES implementation relies on secret-derived table lookups and your attacker shares a machine with you, they can write a spy process that will profile the local cache and from that trace data infer the table lookups you did. It's a great (and famous) paper, but it does not suggest that reusing an AES key is dangerous, because of course it isn't. The guy talking about using USB one-time pads is not in a good position to be concerned about mitigating localhost attackers.
- DanBC 13y agoOTPs feel nice because "UNBREAKABLE!!". But there are severe problems. 1) The pad needs to be random. It must only be used once. It must be larger than the plain text you want to send. 2) You have to be able to transmit the pad somehow. If you can transmit the pad, why don't you just transmit the message, or transmit keys? People do sell OTP technology. It's up to you to decide if it's snake oil or not. (http://www.mils.com/en/products/unified-communication/#2 http://www.mils.com/en/products/unified-communication/#2) (http://cipher-text.blogspot.co.uk/2005/08/one-time-pads-on-paper-tape-in-2005.html http://cipher-text.blogspot.co.uk/2005/08/one-time-pads-on-p...) > First, they were founded in 1946, and have been doing one-time pads ever since. Second, they seem to be pitching their products at governments. Third, amongst other things, their random number generator can output to a...wait for it...5-channel paper tape puncher (pictured above left). > 5-channel paper tape -- as in, pretty much the same one-time pad implementation Gilbert Vernam patented in 1919. I'm flabbergasted. Who's still using this stuff? I reckon you'd need a little over 4 meters for each kilobyte of information you encrypt.