New answers tagged

0

For your points: Your discussion of expansion is correct. In particular, you can show that $\ell(r) = mr \geq 2r > r$, which is essentially what you explain. You can write a formal proof that $F_C$ is poly-time in essentially the same way you would show any algorithm is poly-time. In this case, it is quite obvious that the result is poly-time, so if it ...


2

simple explanation A simple explanation can mean very different things to different people. thesquaregroot's answer tackles this from the "simple but still technical" perspective. For me, simple means (borderline) non-technical. A sponge construction is named after a sponge. Not per se the animal, but the derived device, that you use to clean a ...


7

The hints given refer to unbiasing algorithms, which is the standard answer in cryptography. However, there is a very nice and different solution for the example of generating the $(2/3,1/3)$ distributed bits from an unbiased stream which I will mention here. For clarity call the output symbols $a$ and $b$ with $p_a=2/3=1-p_b$ instead of using binary symbols ...


1

Both a hash (like SHA-1) and a cipher (like RSA) are designed to not be reversible. That is, given their outputs (the digest or ciphertext) it should not be feasible to figure out what the input was. The value of a salt is not in making it harder to figure out what the password was from the hashed password. Passwords are often easy to guess. A salt makes it ...


2

Rainbow tables are essentially an optimized dictionary attack, which rely on two assumptions: That two different applications will hash the same input to the same output, e.g. the password "Password123" will always hash to "42f749ade7f9e195bf475f37a44cafcb". This allows the attacker to re-use a rainbow table database to attack multiple ...


5

I don't see a point of using RSA for password hashing. Using SHA and RSA will not make the bruteforce attack slower. The massive GPU/ASIC attacks will still work if we assume the public key $(e,n)$ is known. That is why we need memory hard functions to make the attacks slower. Sticking the standard is still better like using Argon2id ( Argon2 was the winner ...


4

What you are describing is called pepper. What you are doing is just using RSA as a cryptographic hash function. That probably reduces performance and makes your system more complicated. Generally, people install a random number directly in to the program as a literal. It is safe as long as your source code and binary is safe. You could use it as an RSA key, ...


2

No, because this is just an intermediate step. Roughly, if you want to get $n$ standard (correlated or not) OTs where the receiver chooses what he gets, our construction has four main steps: a) Build a correlated OT where the choice vector is a random $t$-sparse vector (a very large vector, but with only $t$ random 1's). This is what is done using a sum of $...


Top 50 recent answers are included