Skip to main content
Became Hot Network Question
added 136 characters in body
Source Link
knaccc
  • 4.8k
  • 1
  • 16
  • 32

I generate two uniformly random 127-bit integers $a$ and $b$.

I calculate $c=a+b$, which means $c$ can always be represented as a 128-bit integer.

$c$ will not be uniformly randomly distributed, but I need to use it as entropy for a private key. I do not have the option of calculating $c=(a + b)\ mod\ 2^{127}$.

How can I reason about the security level of the key $k=H_{128}(c)$, where $H_{128}()$ is a cryptographically secure hash such as SHA256 with the result truncated to 128 bits.

Furthermore, how is the security level of $k$ affected if an adversary can control $b$. The adversary will have no knowledge of $a$, and will attempt to decrypt data I have encrypted using $k$.

I generate two uniformly random 127-bit integers $a$ and $b$.

I calculate $c=a+b$, which means $c$ can always be represented as a 128-bit integer.

$c$ will not be uniformly randomly distributed, but I need to use it as entropy for a private key. I do not have the option of calculating $c=(a + b)\ mod\ 2^{127}$.

How can I reason about the security level of the key $k=H_{128}(c)$, where $H_{128}()$ is a cryptographically secure hash such as SHA256 with the result truncated to 128 bits.

I generate two uniformly random 127-bit integers $a$ and $b$.

I calculate $c=a+b$, which means $c$ can always be represented as a 128-bit integer.

$c$ will not be uniformly randomly distributed, but I need to use it as entropy for a private key. I do not have the option of calculating $c=(a + b)\ mod\ 2^{127}$.

How can I reason about the security level of the key $k=H_{128}(c)$, where $H_{128}()$ is a cryptographically secure hash such as SHA256 with the result truncated to 128 bits.

Furthermore, how is the security level of $k$ affected if an adversary can control $b$. The adversary will have no knowledge of $a$, and will attempt to decrypt data I have encrypted using $k$.

edited body
Source Link
knaccc
  • 4.8k
  • 1
  • 16
  • 32

I generate two uniformly random 127-bit integers $a$ and $b$.

I calculate $c=a+b$, which means $c$ can always be represented as a 128 bit-bit integer.

$c$ will not be uniformly randomly distributed, but I need to use it as entropy for a private key. I do not have the option of calculating $c=(a + b)\ mod\ 2^{127}$.

How can I reason about the security level of the key $k=H_{128}(c)$, where $H_{128}()$ is a cryptographically secure hash such as SHA256 with the result truncated to 128 bits.

I generate two uniformly random 127-bit integers $a$ and $b$.

I calculate $c=a+b$, which means $c$ can always be represented as a 128 bit integer.

$c$ will not be uniformly randomly distributed, but I need to use it as entropy for a private key. I do not have the option of calculating $c=(a + b)\ mod\ 2^{127}$.

How can I reason about the security level of the key $k=H_{128}(c)$, where $H_{128}()$ is a cryptographically secure hash such as SHA256 with the result truncated to 128 bits.

I generate two uniformly random 127-bit integers $a$ and $b$.

I calculate $c=a+b$, which means $c$ can always be represented as a 128-bit integer.

$c$ will not be uniformly randomly distributed, but I need to use it as entropy for a private key. I do not have the option of calculating $c=(a + b)\ mod\ 2^{127}$.

How can I reason about the security level of the key $k=H_{128}(c)$, where $H_{128}()$ is a cryptographically secure hash such as SHA256 with the result truncated to 128 bits.

Source Link
knaccc
  • 4.8k
  • 1
  • 16
  • 32

Security level of the hash of the sum of two uniformly random keys

I generate two uniformly random 127-bit integers $a$ and $b$.

I calculate $c=a+b$, which means $c$ can always be represented as a 128 bit integer.

$c$ will not be uniformly randomly distributed, but I need to use it as entropy for a private key. I do not have the option of calculating $c=(a + b)\ mod\ 2^{127}$.

How can I reason about the security level of the key $k=H_{128}(c)$, where $H_{128}()$ is a cryptographically secure hash such as SHA256 with the result truncated to 128 bits.