TWI227439B

Apparatus and method for reducing sequential bit correlation in a random number generator

Abstract

An apparatus and method for reducing sequential bit correlation in a random number generator. The method includes generating a stream of random bits and selecting every Nth bit from the stream for accumulation and delivery to the requesting software application rather than delivering all the bits in the stream, where N is a programmable value. In one embodiment, the apparatus for carrying out the method includes a microprocessor that includes elements such as an arithmetic and logic unit, store unit, branching circuitry, and registers that execute instructions specified in microcode stored in a microcode memory. In another embodiment, the apparatus includes a plurality of multiplexers that selectevery Nth bit. In one embodiment, N is specified as an input parameter to a microprocessor instruction that stores the random bits selected.

TWI227439B, drawing sheet 1
Sheet 1 of 152

Term

No projected expiry on record.

  1. Priority
  2. Filed
  3. Granted
  4. Today

32 claims: 29 independent, 3 dependent

  1. 1
    一種用於改善由一隨機亂數產生器所產生資料之隨機性的方法,包括以下步驟:由一隨機位元產生器產生複數個位元;從該複數個位元中選出每第N個位元,其中,N為大於1的整數;以及累積所選出的每第N個位元。
  2. 2
    如申請專利範圍第1項所述之方法,更包括有以下步驟:捨棄未被選定的複數個位元。
  3. 3
    如申請專利範圍第1項所述之方法,其中該累積步驟包括將該每第N個位元累積到一微處理器之一暫存器中。
  4. 4
    如申請專利範圍第3項所述之方法,更包括:儲存已累積的該每第N個位元。
  5. 5
    如申請專利範圍第4項所述之方法,其中該儲存步驟包括將已累積的該每第N個位元儲存到連接該微處理器之一記憶體。
  6. 6
    如申請專利範圍第4項所述之方法,其中該儲存步驟包括將已累積的該每第N個位元儲存到在該微處理器之一第二暫存器。
  7. 7
    如申請專利範圍第4項所述之方法,其中儲存已累積的該每第N個位元被執行,以回應該微處理器執行用來儲存一部份該複數個位元的一指令。
  8. 8
    如申請專利範圍第3項所述之方法,其中在該微處理器中該N值是可程式化的。
  9. 9
    如申請專利範圍第1項所述之方法,其中該N值是由2的冪次所組成。
  10. 10
    如申請專利範圍第1項所述之方法,更包括:設定一值到一暫存器中;及在選出該每第N個位元之前,根據設定到該暫存器中的該值計算出該N值。
  11. 11
    一種微處理器,包括:一隨機位元產生器,用以產生一串隨機位元;以及一算數邏輯單元,連接該隨機位元產生器,用以選擇在該串隨機位元的每第N個位元,其中,N為大於1的整數,並用以累積被選定的每第N個位元到連接該算數邏輯單元之一暫存器。
  12. 12
    如申請專利範圍第11項所述之該微處理器,更包括:一可程式化暫存器,連接到該算數邏輯單元,用以儲存計算該N值的一值。
  13. 13
    如申請專利範圍第12項所述之該微處理器,其中,該N值可為2的x次方,x為儲存在可程式化暫存器的該值。
  14. 14
    如申請專利範圍第12項所述之該微處理器,其中該N值可為儲存在可程式化暫存器的該值。
  15. 15
    如申請專利範圍第11項所述之該微處理器,更包括:一指令轉譯器,用以將在該微處理器中一指令集之一指令轉譯,該指令指示該微處理器儲存已選出及累積之該每第N個位元。
  16. 16
    如申請專利範圍第15項所述之該微處理器,其中該指令將已選出及累積之該每第N個位元,儲存到連接該處理器之一記憶體。
  17. 17
    如申請專利範圍第15項所述之該微處理器,其中該指令將已選出之該每第N個位元,儲存到連接該算數邏輯單元之一第二暫存器。
  18. 18
    如申請專利範圍第15項所述之該微處理器,其中該N為該指令之一輸入參數。
  19. 19
    如申請專利範圍第18項所述之該微處理器,其中該N值為一指令之輸入參數,被儲存在該微處理器之一通用暫存器中。
  20. 20
    如申請專利範圍第15項所述之該微處理器,更包括:一記憶體,連接到該算數邏輯單元,用以儲存複數個微碼指令,該微碼指令包括用以執行該指令的複數個指令。
  21. 21
    如申請專利範圍第20項所述之該微處理器,其中該複數個指令包括有一或多個指令,以指示該算數邏輯單元將該串隨機位元移動N個位元。
  22. 22
    如申請專利範圍第21項所述之該微處理器,其中該複數個指令包括有一或多個指令,以指示該算數邏輯單元執行邏輯運算以取出被移動的該串隨機位元之一。
  23. 23
    如申請專利範圍第22項所述之該微處理器,其中取出被移動該串隨機位元之一的邏輯運算包括一邏輯及(AND)運算。
  24. 24
    如申請專利範圍第22項所述之該微處理器,該複數個指令包括有一或多個指令以指示該算數邏輯單元執行算數或邏輯運算以累積被移動的該串隨機位元之一到該暫存器。
  25. 25
    如申請專利範圍第24項所述之該微處理器,其中該算數或邏輯運算以累積被移動的該串隨機位元之一到的該暫存器包括一加法運算。
  26. 26
    如申請專利範圍第24項所述之該微處理器,其中該算數或邏輯運算以累積被移動的該串隨機位元之一到的該暫存器包括一移位(shift)運算。
  27. 27
    如申請專利範圍第11項所述之該微處理器,其中該N值大於0。
  28. 28
    一種用以減低連續隨機位元間的相關性之裝置,包括:一隨機位元產生器,用以產生一組隨機位元;一第一暫存器,連接到該隨機位元產生器,用以儲存該組隨機位元;複數個多工器,連接到該第一暫存器,用以選擇在該組隨機位元的每第N個位元,該複數個多工器藉由一控制值選擇每第N個位元;以及一第二暫存器,連接到該複數個多工器,用以儲存該複數個多工器所選擇之該組隨機位元的每第N個位元。
  29. 29
    如申請專利範圍第28項所述之該裝置,其中該N值始可程式化的。
  30. 30
    如申請專利範圍第28項所述之該裝置,其中該N值可為2的x次方,該x值由該控制信號所指定。
  31. 31
    如申請專利範圍第28項所述之該裝置,其中該N值為大於0的整數。
  32. 32
    如申請專利範圍第28項所述之該裝置,其中該N值為大於1的整數。
Independent claims32