Abstract
Cryptographic keys for security should be generated by true random number generators that apply irreversible hashing algorithms to initial values taken from a random source. As DRAM shows randomness in its access latency, it can be used as a random source. However, systems with synchronous DRAM (SDRAM) do not easily expose such randomness resulting in highly clustered random numbers. We resolved this problem by using the xor instruction. Statistical testing shows that the generated random bits have the quality comparable to true random bit sequences. The performance of bit generation is at the order of 100 Kbits/sec. Since the proposed random number generation requires neither external devices nor any special circuits, this method may be used in any computing device that employs DRAM.
보안을 위한 암호 키는 진난수 발생기를 사용하여 만들어야 한다. 진난수 발생기는 상태 예측이 거의 불가능한 혼란 진원지에서 초기값을 추출하여 비가역적 해시 알고리즘을 적용해 난수를 만들어 낸다. DRAM 접근 대기 시간(latency)에도 불규칙성이 존재하여 혼란 진원지 역할을 할 수 있음이 알려져 있는데, 요즘 널리 사용되는 동기식 DRAM (SDRAM)을 장착한 시스템에서는 접근 대기 시간의 불규칙성이 잘 노출되지 않으며, 난수 비트 패턴의 뭉침 현상이 심해진다. 이 문제를 xor 연산을 사용하여 해결하였다. 이 방법으로 만든 난수를 통계학적으로 평가하여 진난수에 필적하는 품질을 확인하였다. 이와 같은 난수 발생 방법의 성능은 100 Kbits/sec 수준이며, 별도의 장치나 회로를 요구하지 않아 DRAM을 장착하고 있는 여러 형태의 컴퓨터 장비에서 사용 가능하다.