146 reputation
6
bio website
location
age
visits member for 1 year, 5 months
seen Mar 8 at 10:36

Mar
8
comment Would this simple encrypted chat program be feasible using One Time Pads?
@tylo They haven't been hiring the top mathematicians and cryptanalysts in the world just to insert programmatic backdoors in software. What if their backdoors are discovered? See Apple's goto fail or the GNU TLS backdoors in the last few weeks. Their goal is all about providing a full spectrum of attack options. Obviously backdoors and broken authentication is the easiest option. Next might be broken RNGs. Followed by weakened algorithms. Next might be short key lengths. By the time you get to brute forcing keys then that becomes prohibitively expensive and time consuming on a large scale.
Mar
4
comment Would this simple encrypted chat program be feasible using One Time Pads?
@D.W. Continued... Buffer overflows etc are another threat category altogether. An attack there would require a targeted attack on the user's OS or software directly to exploit the flaw. In which case they're already compromised as the attacker has gotten something onto their machine. Explain how any other encryption system is automatically protected from this vulnerability, just because it's not a OTP? You seem to make this out to be a problem specific to OTPs when it's not. Of course for any encryption system to work you have to secure the endpoints, no doubt about it. Nothing new there.
Mar
4
comment Would this simple encrypted chat program be feasible using One Time Pads?
@D.W. What you are talking about is two different things. You have to assess your target adversary. If your adversary is more likely to intercept your encrypted communications, then it's important to have strong encryption that they can't crack, even if they store it for a long time and try again when they have more powerful supercomputers.
Feb
26
comment Would this simple encrypted chat program be feasible using One Time Pads?
@CodesInChaos & DW, an important part of the OTP is it is information-theoretically secure. This means it's secure against computationally unbounded adversaries. It also means if you are interrogated (or tortured) into giving up the key, you can construct a plausible fake message (using pen & paper) then combine that with the ciphertext, thus you now have a fake key that you can give them. As digital devices are now being routinely intercepted at border crossings this is an important feature. You don't get this kind of security from a symmetric cipher nor do you have a true security proof.
Feb
26
comment Would this simple encrypted chat program be feasible using One Time Pads?
Clearly you would need open source hardware & software, firewalls, antivirus and other security measures to properly secure the endpoints for this sort of solution. I would be interested to see your examples of other crypto products which take a holistic view of all the risks. Let's be honest, if they've developed a crypto solution that works on a closed source OS such as iOS or Windows then they're not secure either. There's no telling how many backdoors NSA have put in.
Feb
26
comment Would this simple encrypted chat program be feasible using One Time Pads?
There are methods for information theoretically secure MACs @tylo, for example UMAC. Here's a simple method: reserve part of the OTP for encrypting the message, reserve part of the OTP for encrypting the MAC, encrypt the message, MAC the ciphertext, encrypt the MAC with the unused portion of the OTP as well. Send into the void.
Feb
20
comment Would this simple encrypted chat program be feasible using One Time Pads?
@tylo, Assuming the endpoints are secure then the whole system would work as a whole. To secure the endpoints then you would need open source software and potentially open hardware as well which may be difficult to come by. Software part is easy. Message integrity and authenticity is covered by the MAC. Key management is easy - you encrypt the keys on disk and in transit. The key is only loaded from secure storage when encrypting and decrypting, then destroyed. The security of the OTP relies on the operational security of the people communicating and transferring keys.
Feb
20
comment Would this simple encrypted chat program be feasible using One Time Pads?
@Terry, not so sure the wrench would work. Let's say the message was sent & delivered, then the key erased. The attacker only has the ciphertext. The person being threatened can invent any number of fake keys to give the person with the wrench. Person simply calculates ciphertext XOR fake message == plausible key. Person with wrench has no idea what real key or the real message is. Any number of plausible plaintexts and keys can be produced.
Jun
14
comment Algorithm: How to use x and y mouse movement co-ordinates to generate random data?
@fgrieu: You say it reduces the entropy per hashed character, but by how much? Do you think I should throw all the gathered entropy into a pool, combine with some other entropy (e.g. keyboard, mouse clicks, milliseconds between mouse clicks) then when I've gathered enough entropy equal to the hash bit length e.g. 256bit, then hash that string, and that can be the key?
Jun
14
comment Would this simple encrypted chat program be feasible using One Time Pads?
Why are you digging up this old post from last year to throw in more disparaging comments? Who says I'm even trying to build this anymore? I understand that crypto alone won't solve this problem. You need to actually secure the end points as well obviously (open source OS, firewalls, antivirus etc). By your argument all crypto is useless because the NSA have got malware in everything. The actual real risk these days is having your data sniffed and read over the wire by the NSA who intercept and copy all web traffic and can decrypt pretty much everything. Now stop downvoting all my old posts.
Jun
13
comment Algorithm: How to use x and y mouse movement co-ordinates to generate random data?
@fgrieu Potentially what I think we need to do is capture x,y coordinates until we have 128 bytes of unique entropy then hash it with SHA2/SHA3 hash. What do you think?
Jun
13
comment Algorithm: How to use x and y mouse movement co-ordinates to generate random data?
@fgrieu Does hashing the commas/brackets reduce entropy? Let's say I joined up 8 separate sets of coordinates, then there would be a lot of commas and brackets in that string too which aren't random. Does that matter? Also if I am hashing just a small string (the [200,330]) then hashing that, then I use that hash for my OTP key, is it theoretically possible that someone could create a rainbow table of all the possible combinations of the x,y values, then they'd have all my possible keys. Then they could get the encrypted text and try out all the keys to see if it matched?
Jun
13
comment Algorithm: How to use x and y mouse movement co-ordinates to generate random data?
I didn't downvote! I'm still processing this answer. Lets say I have X and Y coordinates of 478,702 out of a usable screen space of 1920×1080 pixels. Converting these numbers to binary gives me 001101000011011100111000 for 478 and 001101110011000000110010 for 702, which is 24bits long. In the phrack article I'm only seeing numbers with 16bits of binary code. I think he did his testing in a small portion of the screen ie 99x99 pixels? The largest number I might have is 1920 00110001001110010011001000110000 which is 32bits. Are you saying I can't use all of that and only the last 4 bits?
Jun
13
comment Algorithm: How to use x and y mouse movement co-ordinates to generate random data?
Not too worried about the practicality of the OTP, leave that for me to worry about. As far as programming is concerned it is actually the most practical to develop. Rather than something like RSA which requires a PhD in maths to understand all the notation etc.
Jun
13
comment Algorithm: How to use x and y mouse movement co-ordinates to generate random data?
My questions then would be, how does the mouse x and y only produce 2 bits of randomness per mouse movement? Also if I was joining the numbers together in a big string to consolidate 128 mouse readings before hashing, does having that many commas in the string reduce the entropy?
Jun
13
comment Algorithm: How to use x and y mouse movement co-ordinates to generate random data?
fgrieu above says to keep the comma in to separate the numbers because you might get two different coordinates 20,111 and 201,11 but they would be the same number 20111 when concatenated together. Putting the comma in keeps them separated and will result in a different hash.
Jun
13
comment Algorithm: How to use x and y mouse movement co-ordinates to generate random data?
OK sure I could include some other entropy sources later into the entropy pool, mouse clicks, time between mouse clicks, keyboard and hardware entropy. Let's say my program returns X and Y mouse coordinates 478,702. This is out of a usable screen space of 1920×1080 screen size. So you're saying concatenate them, then that would become 478,702 but if I run that through an ASCII to binary converter I actually get 7 bytes 0110100 0110111 0111000 0101100 0110111 0110000 0110010.
Jun
13
comment Algorithm: How to use x and y mouse movement co-ordinates to generate random data?
Thanks, but not sure I have enough maths knowledge to understand all the notation in the first PDF. Can you summarise it in layman's terms for me what I need to do?
Jun
13
comment Algorithm: How to use x and y mouse movement co-ordinates to generate random data?
For your edited answer you also mention falling back to server-generated random numbers delivered to the client over SSL. That sounds terrible as then you're sending your random numbers for your one-time pad key over a less secure transmission medium. The security of the one-time pad that used those random numbers would then only be as secure as the SSL used. So if the SSL was broken/intercepted/hijacked they could grab the random numbers and later decrypt your one-time pad. The generation of the random numbers must be done in JavaScript and stay client side as if it was a regular C++ program.
Jun
12
comment Algorithm: How to use x and y mouse movement co-ordinates to generate random data?
Thanks, the WebCryptoAPI you linked to looks interesting however there's no guarantee that the algorithm and entropy source the browser is using to generate the 'cryptographically secure random' bytes is actually random. In the spec it says they can only guarantee it to be psuedo-random, so not good for a OTP. Maybe you could feed bits of it into the random pool and combine it with a few other methods.