a highly portable true random number generator based on
play

A Highly-Portable True Random Number Generator based on Coherent - PowerPoint PPT Presentation

A Highly-Portable True Random Number Generator based on Coherent Sampling 2019 International Conference on Field-Programmable Logic and Applications Adriaan Peetermans, Vladimir Ro zi c and Ingrid Verbauwhede September 10, 2019 Random


  1. A Highly-Portable True Random Number Generator based on Coherent Sampling 2019 International Conference on Field-Programmable Logic and Applications Adriaan Peetermans, Vladimir Roˇ zi´ c and Ingrid Verbauwhede September 10, 2019

  2. Random numbers How are they used? ◮ Cryptography: ◮ Statistical ◮ Gambling/games simulations ⋆ Symmetric key ⋆ Card shuffling ⋆ Public key ⋆ Monte Carlo ⋆ Dice throw ⋆ Challenge- ⋆ Optimisation ⋆ Roulette ⋆ Initialisation response protocols ⋆ Padding value ⋆ Masking 2

  3. Random numbers How are they generated? Seed ◮ Pseudo Random Number Generator (PRNG) ⋆ Deterministic finite state machine expanding the initial State seed value update ◮ True Random Number Generator (TRNG) State Output 3

  4. Random numbers How are they generated? ◮ Pseudo Random Number Generator (PRNG) ◮ True Random Number Generator (TRNG) ⋆ Convert electrical noise to digital bitstream ⋆ Must be accompanied by a stochastic model 3

  5. Stochastic model How to make sure the process is truly random? ◮ Old approach: Pass/Fail Statistical RNG T ests 4

  6. Stochastic model How to make sure the process is truly random? ◮ Old approach: Pass/Fail Statistical RNG T ests ◮ New approach: Experiments Entropy claim Stochastic Model TRNG Assumptions Design parameters 4

  7. TRNGs for FPGA TRNGs for FPGA with associated stochastic model: 1 TRNG type Area Power cons. Bit rate Feasib. & Repeat. (LUT/Reg) [mW] [Mbit/s] ERO 46/19 2.16 0.0042 5 COSO 18/3 1.22 0.54 1 MURO 521/131 54.72 2.57 4 PLL 34/14 10.6 0.44 3 TERO 39/12 3.312 0.625 1 STR 346/256 65.9 154 2 1 O. Petura, et al. “A survey of AIS-20/31 compliant TRNG cores suitable for FPGA devices,” in FPL 2016. 5

  8. TRNGs for FPGA TRNGs for FPGA with associated stochastic model: 1 TRNG type Area Power cons. Bit rate Feasib. & Repeat. (LUT/Reg) [mW] [Mbit/s] ERO 46/19 2.16 0.0042 5 COSO 18/3 1.22 0.54 1 MURO 521/131 54.72 2.57 4 PLL 34/14 10.6 0.44 3 TERO 39/12 3.312 0.625 1 STR 346/256 65.9 154 2 1 O. Petura, et al. “A survey of AIS-20/31 compliant TRNG cores suitable for FPGA devices,” in FPL 2016. 5

  9. COherent Sampling ring Oscillator (COSO) based TRNG What makes this TRNG hard to implement? ◮ General architecture: ⋆ RO 1 samples RO 0 ⋆ Sampling generates low frequency beat signal ( S beat ) ⋆ Count period length of S beat and reset every negative edge of S beat S beat Q RO 0 D CSCnt CLR RO 1 Counter 6

  10. COherent Sampling ring Oscillator (COSO) based TRNG S beat Q RO 0 D CSCnt CLR RO 1 Counter 255 MHz RO 0 [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 400 MHz RO 1 [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 S beat [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 CSCnt [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 7

  11. COherent Sampling ring Oscillator (COSO) based TRNG S beat Q RO 0 D CSCnt CLR RO 1 Counter 290 MHz RO 0 [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 400 MHz RO 1 [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 S beat [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 4 CSCnt 2 0 [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 7

  12. COherent Sampling ring Oscillator (COSO) based TRNG S beat Q RO 0 D CSCnt CLR RO 1 Counter 325 MHz RO 0 [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 400 MHz RO 1 [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 S beat [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 6 CSCnt 4 2 0 [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 7

  13. COherent Sampling ring Oscillator (COSO) based TRNG S beat Q RO 0 D CSCnt CLR RO 1 Counter 360 MHz RO 0 [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 400 MHz RO 1 [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 S beat [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 10 CSCnt 5 0 [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 7

  14. COherent Sampling ring Oscillator (COSO) based TRNG S beat Q RO 0 D CSCnt CLR RO 1 Counter 385 MHz RO 0 [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 400 MHz RO 1 [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 S beat [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 CSCnt 20 10 0 [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 7

  15. COherent Sampling ring Oscillator (COSO) based TRNG S beat Q RO 0 D CSCnt CLR RO 1 Counter 400 MHz RO 0 [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 400 MHz RO 1 [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 S beat [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 30 CSCnt 20 10 0 [ μ s] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 7

  16. COSO stochastic model Due to jitter in both ROs, CSCnt is a discrete random variable: E [ CSCnt ] = E [ T RO 0 ] E [∆] Var [ CSCnt ] = E [ CSCnt ] Var [∆] E [∆] 2 ∆ is equal to the period difference of the two ROs: E [∆] = | E [ T RO 1 ] − E [ T RO 0 ] | Var [∆] = Var [ T RO 0 ] + Var [ T RO 1 ] Use the LSB of the generated CSCnt value as a random bit 8

  17. COSO stochastic model Due to jitter in both ROs, CSCnt is a discrete random variable: E [ CSCnt ] = E [ T RO 0 ] E [∆] Var [ CSCnt ] = E [ CSCnt ] Var [∆] E [∆] 2 ∆ is equal to the period difference of the two ROs: E [∆] = | E [ T RO 1 ] − E [ T RO 0 ] | Var [∆] = Var [ T RO 0 ] + Var [ T RO 1 ] Use the LSB of the generated CSCnt value as a random bit 8

  18. COSO stochastic model Due to jitter in both ROs, CSCnt is a discrete random variable: E [ CSCnt ] = E [ T RO 0 ] E [∆] Var [ CSCnt ] = E [ CSCnt ] Var [∆] E [∆] 2 ∆ is equal to the period difference of the two ROs: E [∆] = | E [ T RO 1 ] − E [ T RO 0 ] | Var [∆] = Var [ T RO 0 ] + Var [ T RO 1 ] Use the LSB of the generated CSCnt value as a random bit 8

  19. COSO stochastic model Due to jitter in both ROs, CSCnt is a discrete random variable: E [ CSCnt ] = E [ T RO 0 ] E [∆] Var [ CSCnt ] = E [ CSCnt ] Var [∆] E [∆] 2 ∆ is equal to the period difference of the two ROs: E [∆] = | E [ T RO 1 ] − E [ T RO 0 ] | Var [∆] = Var [ T RO 0 ] + Var [ T RO 1 ] Use the LSB of the generated CSCnt value as a random bit 8

  20. COSO stochastic model Entropy versus throughput trade-off: 9

  21. RO matching in FPGA How to achieve RO matching in FPGA? ◮ Search for locations that gives the required matching ⋆ Slow and labour intensive process ⋆ Has to be repeated for every device separately, even for the same FPGA family/vendor Architecture FPGA family Area [DFFs/LUTs] Throughput [Mbit/s] Statistical test Design effort Spartan 6 3/18 0.54 AIS-31 T8 MP Original COSO [15] Cyclone V 3/13 1.44 AIS-31 T8 MP SmartFusion2 3/23 0.328 AIS-31 T8 MP 128 slices 1.1 AIS-31 T6-T8 MP Spartan 6 DC-TRNG [18] Cyclone V 273 ALMs 1.116 AIS-31 T6-T8 MP & MR Spartan 6 190 slices 1.0416 AIS-31 T6-T8 PLL required PLL-TRNG [18] Cyclone V 273 ALMs 1.04 AIS-31 T6-T8 PLL required Spartan 6 5/10 1.15 AIS-31 T0-T5 MP ES-TRNG [11] Cyclone V 6/10 1.067 AIS-31 T0-T5 MP Spartan 6 12/39 0.625 AIS-31 T8 MP & MR TERO [15] Cyclone V 12/46 1 AIS-31 T8 MP & MR 12/46 1 AIS-31 T8 MP & MR SmartFusion2 256/346 154 AIS-31 T8 MP & MR Spartan 6 STR [15] Cyclone V 256/352 245 AIS-31 T8 MP & MR SmartFusion2 256/350 188 AIS-31 T8 MP & MR 10

  22. RO matching in FPGA How to achieve RO matching in FPGA? ◮ Create a reconfigurable RO that can match itself using a feedback mechanism ⋆ No manual intervention needed ⋆ Same bitstream can be used for all devices ⋆ Porting process greatly simplified ⋆ Control circuit can actively monitor TRNG health and change configuration when needed 11

  23. Configurable RO ROSel ROSel ROSel [1:0] [3:2] [2 n -1:2 n -2] Enable ROSel [1:0] RO out 12

  24. Controller feedback High and Low bounds Controller Entropy Digitisation source D RO 0 S beat Q Counter CSCnt RO 1 13

  25. Controller feedback Input: CSCnt , req Output: ROSel , matched Global constant: L , H 1: goodSamples ← 0, sampleCnt ← 0 2: ROSel ← 0, matched ← 0 3: while true do 4: if req then 5: if L ≤ CSCnt < H then 6: goodSamples ← goodSamples + 1 7: matched ← 1 if sampleCnt == 2 7 − 1 then 8: 9: if goodSamples == 0 then 10: ROSel ← ROSel + 1 11: matched ← 0 12: goodSamples ← 0 13: sampleCnt ← sampleCnt + 1 14

  26. Controller feedback sampleCnt ++ Input: CSCnt , req Y N Output: ROSel , matched L ≤ CSCnt < H Global constant: L , H 1: goodSamples ← 0, sampleCnt ← 0 goodSamples ++ 2: ROSel ← 0, matched ← 0 matched ← 1 3: while true do 4: if req then 5: if L ≤ CSCnt < H then 6: goodSamples ← goodSamples + 1 7: matched ← 1 Y N if sampleCnt == 2 7 − 1 then sampleCnt = 2 7 -1 8: 9: if goodSamples == 0 then 10: ROSel ← ROSel + 1 11: matched ← 0 Y N goodSamples = 0 12: goodSamples ← 0 13: sampleCnt ← sampleCnt + 1 ROSel ++ goodSamples ← 0 matched ← 0 15

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend