Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

The thing is, you are signing hash of a hash of data instead of simply hash of data.


sort by: page size:

Usually, signing the whole damn thing is too computationally expensive, so you sign a hash instead.

Don't most systems for signing files just sign the hash of the file anyway?

Even then it doesn't matter because you are signing an insecure hash.

Signing and hashing are specific cryptographic operations with well defined properties. You can’t use them interchangeably if you want to be taken seriously.

Isn't signing a hash the standard procedure for signatures?

What would be the benefit of signing content instead of hashes?

My hope and suspicion is that they’re storing a one way hash of the data to create the signature.

The usual process of signing a bunch of data is to hash it and then encrypt it with public key encryption, so the hash function is as important as the public key encryption scheme.

If the hash is weak, an attacker may be able to construct compromised data that hashes to the same hash, and the whole signature becomes worthless.


you are confusing encryption and signing

Signing is basically hashing + proof of who created the hash. You need either both, or a way to find which hash is correct according to someone, usually the owner of the artifact, and signing gives you just that.

In this case, the hash is the message being encrypted. It's the (c), as I indicated in my previous post. The text being signed is not encrypted, but the signature still involves encryption.

Yep. The signing is done with public/private (aka asymmetric) keys and some kind of hashing mechanism.

it is about timestamping basically nothing else. basically that cannot sign something in the past. Though you can do the same with sequence number, and publicly publishing all signed hashes.

The article is about hash-based signatures, not signatures in general or public-key signatures (DSA or RSA).

data can still be signed.

Don't forget to sign the hashes.

I think you meant to say can't sign the bytes?

You could sign the data. Distribute the public key far and wide. Destroy the private key before you die. The advantage of this approach over just the hash is that you can sign an unlimited number of files and can verify them all with just one public key. It is all authenticated by your identity.

If your signature scheme is broken over the years then that means that people can tamper with the files. So you can use different schemes just as with the hashes.

Who is going to be able to verify your identity after 500 years and/or have a verified copy of the hashes? Without the concept of identity, it's all just a bunch of bits.


Don’t signatures get you the same benefit? I don’t need to trust you simply to sign something saying “user X showed me hash Y at time Z”.
next

Legal | privacy