Hot answers tagged

8

Is the issue that "it has not been proven that these conditions are sufficient to build a stream cipher" really the only issue? So, collision resistance is indeed not enough to build a secure stream cipher, the standard example would be to take a collision resistant hash function and appending 128 $0$ bits to the output. This clearly inherits the ...


7

A cryptographic hash function is a function which is resistant to preimages, second preimages, and collisions. As far as I know, it has not been proven that these conditions are sufficient to build a stream cipher. The output of a cryptographic hash function, being collision and pre-image resistant does not necessarily mean that they produce output ...


6

Is it legit? No, and you hit on the reason - the algorithm converts the message into a series of 16 values from 1 to 128, and then signs based only on that. That's a total of 112 bits; actually, it's somewhat worse than that, as the algorithm they use to convert the message hash into the series of 16 values will generate values that always sum (mod 128) to ...


6

From a cryptographic standpoint, a hash function with fixed-size output: Must be a deterministic function: the same input must always generate the same output. Must accept input messages in a wide input set. Ideally that's should be arbitrary bitstring, but often is arbitrary bytestrings or character strings, perhaps up to some size. Baring special ...


3

You can't prove these properties from ZF axioms. For one-wayness, for example it would imply that $FNP\neq FP$ and thus $P\neq NP$, which is known as a hard problem. The traditional way to consider a hash function as collision-resistant, one-way, etc is to publicly propose it and wait and see if crypt-analysts have found an attack (of course, you have to be ...


3

you have to convert them to bytes before you use them. I use python to find md5 hash. x='d131dd02c5e6eec4693d9a0698aff95c2fcab58712467eab4004583eb8fb7f8955ad340609f4b30283e488832571415a085125e8f7cdc99fd91dbdf280373c5bd8823e3156348f5bae6dacd436c919c6dd53e2b487da03fd02396306d248cda0e99f33420f577ee8ce54b67080a80d1ec69821bcb6a8839396f9652b6ff72a70' c=bytes....


3

In short: Hexadecimal is virtually a gold standard for radix 16 encoding. Base64 isn't standard at all. Hex (quoting):- the letters A–F or a–f represent the values 10–15, while the numerals 0–9 are used to represent their usual values. And each character represents a nibble. So exactly two characters per byte. Now consider Base64. There may or may not be ...


2

At a minimum $P(x)$ must be primitive and $f:\{0,1\}^n \rightarrow \{0,1\}$ must be highly nonlinear and resilient of high order (correlation immune of high order plus balanced) are necessary conditions. Nonlinearity (minimal Hamming distance of the truth table of the boolean function from affine functions), must be high for resisting linear/affine ...


2

TEA was used in the XBox and was so weak, that it allowed the XBox hackers to alter the code and still get the same hash: https://web.archive.org/web/20090416175601/http://www.xbox-linux.org/wiki/17_Mistakes_Microsoft_Made_in_the_Xbox_Security_System If you flip both bit 16 and 31 of a 32 bit word, the hash will be the same. We could easily patch a jump in ...


2

If you compute $2^{b/k}$ values of the form $H(i,\cdot)$, for each $i$, then with high probability there will be some set of representatives who XOR to zero. Intuitively, there will be $(2^{b/k})^k$ ways to choose a representative for each $i$, so one of these ways is likely to XOR to zero. The challenge is finding such a solution efficiently. This problem ...


1

This seems like home work so I will stop short of a full solution. Yes you are allowed to query the functions $H_1$ and $H_2$ it's almost the only thing you can do. So you can collect a pool of input output pairs for each. And then what can you do with two such collections of input output pairs? You may want to index one one of them for efficient lookup.


1

As indicated, this is about creating a $\operatorname{MAC}_k(m) = \operatorname{H}(k \| m)$ where $k$ is the key / secret and $m$ is the message / data. Now, the ABCDEFGHIJKLMNOP part is the hashed part of this URL. Would it be correct to call that part the signature? If so, what exactly is the "data" that an attacker supposedly knows? No, "...


1

If you allow different operations $(\oplus, \otimes)$ on the input and the output, then there is such a property for the Pedersen hash function. Fix a group $\mathbb{G}$ of order $p$ with two generators $(g,h)$, and assume that computing the discrete logarithm of $h$ in base $g$ is hard. Then the function $H: \mathbb{Z}_p \times \mathbb{Z}_p \mapsto \mathbb{...


1

For example, can you generate a sequence of elements that produces a list-hash that is the zero matrix? Yes; the most obvious way is to find a buffer that hashes to a matrix with all $n^2$ matrix elements even; replicate that buffer 8 times, and you'll get a product that's all zeros. This takes an expected $2^{n^2}$ work to find such a buffer; for $n=8$, ...


1

As far as I understood, you are speaking about proof-of-work. But contrarily to what your question said : Some Crypto currencies use fixed values in some positions in the resulting hash. It corresponds to proof-of-work. The idea is the following, to guarantee that people which valid a transaction are "real", the have to solve a puzzle, which is ...


Only top voted, non community-wiki answers of a minimum length are eligible