  True random number generators (TRNG) sample random physical processes to
create large amounts of random numbers for various use cases, including
security-critical cryptographic primitives, scientific simulations, machine
learning applications, and even recreational entertainment. Unfortunately, not
every computing system is equipped with dedicated TRNG hardware, limiting the
application space and security guarantees for such systems. To open the
application space and enable security guarantees for the overwhelming majority
of computing systems that do not necessarily have dedicated TRNG hardware, we
develop QUAC-TRNG.
  QUAC-TRNG exploits the new observation that a carefully-engineered sequence
of DRAM commands activates four consecutive DRAM rows in rapid succession. This
QUadruple ACtivation (QUAC) causes the bitline sense amplifiers to
non-deterministically converge to random values when we activate four rows that
store conflicting data because the net deviation in bitline voltage fails to
meet reliable sensing margins.
  We experimentally demonstrate that QUAC reliably generates random values
across 136 commodity DDR4 DRAM chips from one major DRAM manufacturer. We
describe how to develop an effective TRNG (QUAC-TRNG) based on QUAC. We
evaluate the quality of our TRNG using NIST STS and find that QUAC-TRNG
successfully passes each test. Our experimental evaluations show that QUAC-TRNG
generates true random numbers with a throughput of 3.44 Gb/s (per DRAM
channel), outperforming the state-of-the-art DRAM-based TRNG by 15.08x and
1.41x for basic and throughput-optimized versions, respectively. We show that
QUAC-TRNG utilizes DRAM bandwidth better than the state-of-the-art, achieving
up to 2.03x the throughput of a throughput-optimized baseline when scaling bus
frequencies to 12 GT/s.
