Reputation
37,032
Next tag badge:
119/100 score
19/20 answers
Badges
6 81 153
Newest
 Nice Answer
Impact
~819k people reached

Jan
27
awarded  Nice Answer
Jan
26
comment What is the best way to send two floating point numbers to a server on the internet from a small device such as an arduino?
@DavyLandman: without some kind of memory, there is no way for the device to send messages which will resist malicious reordering by Eve -- unless you go with a two-directional protocol, in which the server interactively exchanges messages with the device: at that point, things become really complex, both to implement and to analyze.
Jan
26
revised What is the best way to send two floating point numbers to a server on the internet from a small device such as an arduino?
edited body
Jan
26
answered What is the best way to send two floating point numbers to a server on the internet from a small device such as an arduino?
Jan
25
reviewed Approve Stretching a random seed to maximize entropy
Jan
25
answered Stretching a random seed to maximize entropy
Jan
22
comment Calculating private keys in the RSA cryptosystem
Actually it is not strictly necessary that $d*e = 1 \mod \phi(n)$; it suffices that $d*e = 1 \mod (p-1)$ and $d*e = 1 \mod (q-1)$, which is a bit less restrictive. Here, this implies that $d = 17 \mod 100$ and $d = 269 \mod 432$. The smallest matching value is $d = 6317$, which can be verified to do the RSA thing properly -- and yet, it does not fulfill the $d*e = 1 \mod \phi(n)$ equation.
Jan
22
answered Use of salt to hash a password
Jan
20
answered How to construct encrypted functions (with either public or private data)?
Jan
20
comment RSA with small exponents?
@owlstead: we use $65537$ mostly out of Tradition. The "attacks" with $e = 3$ are due to the lack of padding, and lack of padding is already a much bigger worry than that: to have an actual weakness due to $e = 3$ (compared to $e = 65537$), you have to thoroughly damage the algorithm (remove the padding step), which creates a bunch of other much bigger weaknesses. With proper padding, no problem with $e = 3$. However, I use $65537$ by default because it avoids questions, and it is not bad either.
Jan
20
comment A simple block cipher based on the SHA-256 hash function
And to say things more generally, that kind of stream cipher is secure only if the stream would be a good PRNG. A PRNG should not allow recomputing its internal state from its output (because knowing the state implies being able to predict subsequent output, and a secure PRNG must offer prediction resistance). It is doable with hash functions, but needs more effort. See NIST SP800-90 for some hash-based PRNG (Hash_DRBG and HMAC_DRBG).
Jan
18
awarded  Nice Answer
Jan
18
comment When to use RSA and when ElGamal asymmetric encryption
@curious: I think you read 99.9% of the books wrong -- quite possibly, the books were unclear. Symmetric cryptography is what you do with the shared key (e.g. AES, HMAC...). DH is how you obtain the shared key (with which you are going to do symmetric cryptography). DH is "asymmetric cryptography" just like, e.g. RSA.
Jan
17
comment When to use RSA and when ElGamal asymmetric encryption
@curious: DH is totally asymmetric cryptography; it is not asymmetric encryption, but it is still cryptography and it is still asymmetric ("asymmetric" = "not all involved party share the same secret keys"). Digital signatures are also asymmetric cryptography (and I do not talk about them here). Also, when you use DH you do not use asymmetric encryption over it. You might have a somewhat skewed idea of what Diffie-Hellman is; I suggest you have a look at the Wikipedia page (unless it is shut off, they seem to want to black it out for a day as a protest against some kind of proposed US law).
Jan
17
answered When to use RSA and when ElGamal asymmetric encryption
Jan
15
answered Can I safely replace XOR with ADD in a stream cipher?
Jan
14
answered How can one securely generate an asymmetric key pair from a short passphrase?
Jan
14
awarded  Enlightened
Jan
14
awarded  Nice Answer
Jan
12
reviewed Approve Two mutually untrusted parties want to exchange data: how to ensure each one gets the data it needs?