Forum Replies Created
-
AuthorPosts
-
euler357
MemberI believe that someone could make an Outlook plug-in to do cryptography in Outlook that pulls random numbers from the TrueRNGpro.
Unfortunately, we don’t currently know of any way to stream random numbers into the Windows OS to be distributed by the OS to applications. Linux does this very easily with rngd.
Chris
August 27, 2016 at 7:36 pm in reply to: TrueRNGPro: anything bad that would reduce capabilities? #1824euler357
MemberIt should work 24/7 for years under normal operating conditions (same as your computer). If there is any manufacturing or premature failure issue, contact us and we’ll make it right.
Chris
euler357
MemberTake a look at the rngd (rng-tools).
euler357
MemberGlad it’s working for you.
Chris
euler357
MemberHere is another run:
root@raspberrypi:/home/pi/workspace/TrueRNG_Windows_Python# ent -c test.bin Value Char Occurrences Fraction 0 3853 0.003763 1 4002 0.003908 2 4085 0.003989 3 4008 0.003914 4 4010 0.003916 5 3903 0.003812 6 4044 0.003949 7 3982 0.003889 8 4003 0.003909 9 3987 0.003894 10 3970 0.003877 11 3954 0.003861 12 3988 0.003895 13 3982 0.003889 14 4114 0.004018 15 3962 0.003869 16 4079 0.003983 17 4028 0.003934 18 3982 0.003889 19 4047 0.003952 20 3946 0.003854 21 4023 0.003929 22 4010 0.003916 23 3990 0.003896 24 3996 0.003902 25 4033 0.003938 26 4016 0.003922 27 3920 0.003828 28 3956 0.003863 29 3915 0.003823 30 4011 0.003917 31 3926 0.003834 32 3976 0.003883 33 ! 4061 0.003966 34 " 4044 0.003949 35 # 4060 0.003965 36 $ 4075 0.003979 37 % 4059 0.003964 38 & 3949 0.003856 39 ' 3960 0.003867 40 ( 3958 0.003865 41 ) 3900 0.003809 42 * 3947 0.003854 43 + 3993 0.003899 44 , 3975 0.003882 45 - 4037 0.003942 46 . 3936 0.003844 47 / 3980 0.003887 48 0 3855 0.003765 49 1 4032 0.003938 50 2 3999 0.003905 51 3 3919 0.003827 52 4 4094 0.003998 53 5 3900 0.003809 54 6 3943 0.003851 55 7 4033 0.003938 56 8 3990 0.003896 57 9 3960 0.003867 58 : 4021 0.003927 59 ; 3992 0.003898 60 < 3954 0.003861 61 = 3875 0.003784 62 > 4014 0.003920 63 ? 4075 0.003979 64 @ 4008 0.003914 65 A 4091 0.003995 66 B 4049 0.003954 67 C 3990 0.003896 68 D 4014 0.003920 69 E 3976 0.003883 70 F 3865 0.003774 71 G 4077 0.003981 72 H 3958 0.003865 73 I 4034 0.003939 74 J 3980 0.003887 75 K 3991 0.003897 76 L 3933 0.003841 77 M 3927 0.003835 78 N 3929 0.003837 79 O 3967 0.003874 80 P 4101 0.004005 81 Q 3943 0.003851 82 R 4058 0.003963 83 S 4005 0.003911 84 T 3951 0.003858 85 U 4060 0.003965 86 V 3944 0.003852 87 W 3975 0.003882 88 X 3912 0.003820 89 Y 3999 0.003905 90 Z 3910 0.003818 91 [ 4008 0.003914 92 \ 4008 0.003914 93 ] 3952 0.003859 94 ^ 3972 0.003879 95 _ 3933 0.003841 96 X 4026 0.003932 97 a 4015 0.003921 98 b 3846 0.003756 99 c 3953 0.003860 100 d 3971 0.003878 101 e 3992 0.003898 102 f 4095 0.003999 103 g 4013 0.003919 104 h 3906 0.003814 105 i 3889 0.003798 106 j 3885 0.003794 107 k 4029 0.003935 108 l 4021 0.003927 109 m 3961 0.003868 110 n 3982 0.003889 111 o 3938 0.003846 112 p 4048 0.003953 113 q 3966 0.003873 114 r 4012 0.003918 115 s 4042 0.003947 116 t 4092 0.003996 117 u 3873 0.003782 118 v 4071 0.003976 119 w 4099 0.004003 120 x 3936 0.003844 121 y 4119 0.004022 122 z 4082 0.003986 123 { 4025 0.003931 124 | 3993 0.003899 125 } 4148 0.004051 126 ~ 4063 0.003968 127 3908 0.003816 128 3969 0.003876 129 4080 0.003984 130 4058 0.003963 131 4066 0.003971 132 3954 0.003861 133 3958 0.003865 134 4051 0.003956 135 4033 0.003938 136 3983 0.003890 137 4082 0.003986 138 4029 0.003935 139 3928 0.003836 140 3904 0.003812 141 4073 0.003978 142 3919 0.003827 143 3959 0.003866 144 4014 0.003920 145 3980 0.003887 146 3958 0.003865 147 4026 0.003932 148 4006 0.003912 149 4031 0.003937 150 3979 0.003886 151 4031 0.003937 152 4032 0.003938 153 3985 0.003892 154 3990 0.003896 155 4096 0.004000 156 4021 0.003927 157 3929 0.003837 158 3984 0.003891 159 4058 0.003963 160 4084 0.003988 161 ▒ 4012 0.003918 162 ▒ 3910 0.003818 163 ▒ 3977 0.003884 164 ▒ 4022 0.003928 165 ▒ 4114 0.004018 166 ▒ 4019 0.003925 167 ▒ 4112 0.004016 168 ▒ 3993 0.003899 169 ▒ 3939 0.003847 170 ▒ 4009 0.003915 171 ▒ 3952 0.003859 172 ▒ 4102 0.004006 173 ▒ 3963 0.003870 174 ▒ 3982 0.003889 175 ▒ 3949 0.003856 176 ▒ 4031 0.003937 177 ▒ 4015 0.003921 178 ▒ 3999 0.003905 179 ▒ 4110 0.004014 180 ▒ 3941 0.003849 181 ▒ 4040 0.003945 182 ▒ 4153 0.004056 183 ▒ 4072 0.003977 184 ▒ 4015 0.003921 185 ▒ 4048 0.003953 186 ▒ 4093 0.003997 187 ▒ 3981 0.003888 188 ▒ 3963 0.003870 189 ▒ 4060 0.003965 190 ▒ 4006 0.003912 191 ▒ 3966 0.003873 192 ▒ 4016 0.003922 193 ▒ 3987 0.003894 194 ▒ 4059 0.003964 195 ▒ 4018 0.003924 196 ▒ 4133 0.004036 197 ▒ 4004 0.003910 198 ▒ 4043 0.003948 199 ▒ 4002 0.003908 200 ▒ 4041 0.003946 201 ▒ 3996 0.003902 202 ▒ 3942 0.003850 203 ▒ 3993 0.003899 204 ▒ 4096 0.004000 205 ▒ 3944 0.003852 206 ▒ 4131 0.004034 207 ▒ 3975 0.003882 208 ▒ 4044 0.003949 209 ▒ 3981 0.003888 210 ▒ 3951 0.003858 211 ▒ 3958 0.003865 212 ▒ 3964 0.003871 213 ▒ 4019 0.003925 214 ▒ 4091 0.003995 215 ▒ 3897 0.003806 216 ▒ 4054 0.003959 217 ▒ 4111 0.004015 218 ▒ 4090 0.003994 219 ▒ 4042 0.003947 220 ▒ 3886 0.003795 221 ▒ 4027 0.003933 222 ▒ 4081 0.003985 223 ▒ 3912 0.003820 224 ▒ 4128 0.004031 225 ▒ 3880 0.003789 226 ▒ 3981 0.003888 227 ▒ 3989 0.003896 228 ▒ 3956 0.003863 229 ▒ 4025 0.003931 230 ▒ 4002 0.003908 231 ▒ 3902 0.003811 232 ▒ 3990 0.003896 233 ▒ 4091 0.003995 234 ▒ 3970 0.003877 235 ▒ 4021 0.003927 236 ▒ 3903 0.003812 237 ▒ 3916 0.003824 238 ▒ 3972 0.003879 239 ▒ 4131 0.004034 240 ▒ 4135 0.004038 241 ▒ 3972 0.003879 242 ▒ 4051 0.003956 243 ▒ 3952 0.003859 244 ▒ 3979 0.003886 245 ▒ 4000 0.003906 246 ▒ 4039 0.003944 247 ▒ 3984 0.003891 248 ▒ 3908 0.003816 249 ▒ 4054 0.003959 250 ▒ 3945 0.003853 251 ▒ 3913 0.003821 252 ▒ 4067 0.003972 253 ▒ 3992 0.003898 254 ▒ 4011 0.003917 255 ▒ 4045 0.003950 Total: 1024000 1.000000 Entropy = 7.999824 bits per byte. Optimum compression would reduce the size of this 1024000 byte file by 0 percent. Chi square distribution for 1024000 samples is 249.37, and randomly would exceed this value 50.00 percent of the times. Arithmetic mean value of data bytes is 127.6448 (127.5 = random). Monte Carlo value for Pi is 3.134355994 (error 0.23 percent). Serial correlation coefficient is -0.000823 (totally uncorrelated = 0.0).
-
This reply was modified 8 years, 5 months ago by
euler357.
euler357
MemberYes, the outputs that you get from a TrueRNG/TrueRNGpro running in normal mode are equally probable.
We use the avalanche effect in a semiconductor junction in two generators which are captured by 10 bit ADCs. The ADC bias is dealt with using an algorithm that maximizes the entropy and “spreads” the bias across the entire sample.
Each 10 bit ADC sample from each generator has about 6.5 – 7 bits of Shannon entropy. These are combined using an entropy mixing algorithm (multiplication in a galois field — similar to a CRC) to concentrate the entropy. This takes in eight 10-bit samples and outputs four 8 bit bytes. So we are taking in 52 to 56 bits of entropy and mixing them to saturate the entropy across all 32 output bits (i.e. maximizing entropy). This is then XOR’d with a whitening sequence.
So, yes, the probability of getting each byte is equal. The reality of a capture will show some variation among the bytes actually captured. Similarly, each 32 bit word will be equally likely. In a pseudo random generator, the algorithm usually guarantees that each symbol will appear an equal number of times in a finite sequence. The issue is that if a generator has a period of 256 bytes (small number for the sake of this argument) and you have 255 bytes output, then you know exactly what the next byte will be. It may be harder to guess if you have a longer period but the problem is the same.
Here is the frequency count output of the ent tool ran on a 1MB capture from a TrueRNGpro (running under Linux on a Raspberry PI 3). The actual counts of each byte vary between runs with no discernible pattern. You can see below that the occurance of each byte is about 4000 counts (1024000 / 256).
root@raspberrypi:/home/pi/workspace/TrueRNG_Windows_Python# ent -c test.bin Value Char Occurrences Fraction 0 4113 0.004017 1 3918 0.003826 2 3993 0.003899 3 4072 0.003977 4 4071 0.003976 5 3983 0.003890 6 3870 0.003779 7 4044 0.003949 8 4129 0.004032 9 4022 0.003928 10 4021 0.003927 11 3928 0.003836 12 4006 0.003912 13 3912 0.003820 14 3954 0.003861 15 4035 0.003940 16 4073 0.003978 17 3925 0.003833 18 3972 0.003879 19 4058 0.003963 20 3942 0.003850 21 3945 0.003853 22 4015 0.003921 23 4038 0.003943 24 3887 0.003796 25 3893 0.003802 26 4090 0.003994 27 4048 0.003953 28 3978 0.003885 29 3931 0.003839 30 4011 0.003917 31 3965 0.003872 32 4002 0.003908 33 ! 4045 0.003950 34 " 4002 0.003908 35 # 4084 0.003988 36 $ 3904 0.003812 37 % 4023 0.003929 38 & 4034 0.003939 39 ' 3877 0.003786 40 ( 3913 0.003821 41 ) 3909 0.003817 42 * 4041 0.003946 43 + 3967 0.003874 44 , 4036 0.003941 45 - 3967 0.003874 46 . 4022 0.003928 47 / 4031 0.003937 48 0 3994 0.003900 49 1 4042 0.003947 50 2 3980 0.003887 51 3 3960 0.003867 52 4 4092 0.003996 53 5 3861 0.003771 54 6 3939 0.003847 55 7 3949 0.003856 56 8 4021 0.003927 57 9 4035 0.003940 58 : 4040 0.003945 59 ; 4123 0.004026 60 < 3997 0.003903 61 = 3977 0.003884 62 > 4053 0.003958 63 ? 3957 0.003864 64 @ 4103 0.004007 65 A 3928 0.003836 66 B 4016 0.003922 67 C 4051 0.003956 68 D 3935 0.003843 69 E 3950 0.003857 70 F 4024 0.003930 71 G 3997 0.003903 72 H 4058 0.003963 73 I 3948 0.003855 74 J 3928 0.003836 75 K 4133 0.004036 76 L 4053 0.003958 77 M 3976 0.003883 78 N 4070 0.003975 79 O 4068 0.003973 80 P 4037 0.003942 81 Q 3994 0.003900 82 R 4010 0.003916 83 S 3981 0.003888 84 T 4114 0.004018 85 U 3960 0.003867 86 V 3940 0.003848 87 W 4020 0.003926 88 X 4056 0.003961 89 Y 3937 0.003845 90 Z 3946 0.003854 91 [ 4105 0.004009 92 \ 4050 0.003955 93 ] 4044 0.003949 94 ^ 4076 0.003980 95 _ 3870 0.003779 96 X 3955 0.003862 97 a 3982 0.003889 98 b 3935 0.003843 99 c 3912 0.003820 100 d 3962 0.003869 101 e 4069 0.003974 102 f 3989 0.003896 103 g 3963 0.003870 104 h 3904 0.003812 105 i 4014 0.003920 106 j 3970 0.003877 107 k 4054 0.003959 108 l 4016 0.003922 109 m 3977 0.003884 110 n 3986 0.003893 111 o 4012 0.003918 112 p 3926 0.003834 113 q 4030 0.003936 114 r 4019 0.003925 115 s 4011 0.003917 116 t 3890 0.003799 117 u 4036 0.003941 118 v 3897 0.003806 119 w 3955 0.003862 120 x 4006 0.003912 121 y 3988 0.003895 122 z 3907 0.003815 123 { 4042 0.003947 124 | 4032 0.003938 125 } 4044 0.003949 126 ~ 3921 0.003829 127 4000 0.003906 128 4032 0.003938 129 4059 0.003964 130 4109 0.004013 131 3932 0.003840 132 3992 0.003898 133 3981 0.003888 134 4022 0.003928 135 4028 0.003934 136 4066 0.003971 137 3983 0.003890 138 3941 0.003849 139 3957 0.003864 140 3886 0.003795 141 4041 0.003946 142 3957 0.003864 143 3986 0.003893 144 3898 0.003807 145 4110 0.004014 146 3935 0.003843 147 4010 0.003916 148 4094 0.003998 149 3938 0.003846 150 3952 0.003859 151 3970 0.003877 152 3974 0.003881 153 4013 0.003919 154 3971 0.003878 155 4021 0.003927 156 4064 0.003969 157 4061 0.003966 158 4138 0.004041 159 4004 0.003910 160 4145 0.004048 161 ▒ 4006 0.003912 162 ▒ 4087 0.003991 163 ▒ 3890 0.003799 164 ▒ 3992 0.003898 165 ▒ 3941 0.003849 166 ▒ 4137 0.004040 167 ▒ 4017 0.003923 168 ▒ 4011 0.003917 169 ▒ 3993 0.003899 170 ▒ 3881 0.003790 171 ▒ 4037 0.003942 172 ▒ 3988 0.003895 173 ▒ 4020 0.003926 174 ▒ 4130 0.004033 175 ▒ 4059 0.003964 176 ▒ 3991 0.003897 177 ▒ 3947 0.003854 178 ▒ 3965 0.003872 179 ▒ 4053 0.003958 180 ▒ 3962 0.003869 181 ▒ 4027 0.003933 182 ▒ 3902 0.003811 183 ▒ 3871 0.003780 184 ▒ 4088 0.003992 185 ▒ 4071 0.003976 186 ▒ 4070 0.003975 187 ▒ 4021 0.003927 188 ▒ 3923 0.003831 189 ▒ 3967 0.003874 190 ▒ 3991 0.003897 191 ▒ 3905 0.003813 192 ▒ 4125 0.004028 193 ▒ 3934 0.003842 194 ▒ 4063 0.003968 195 ▒ 3880 0.003789 196 ▒ 4064 0.003969 197 ▒ 4037 0.003942 198 ▒ 4028 0.003934 199 ▒ 4057 0.003962 200 ▒ 4024 0.003930 201 ▒ 3988 0.003895 202 ▒ 3943 0.003851 203 ▒ 3950 0.003857 204 ▒ 3924 0.003832 205 ▒ 4079 0.003983 206 ▒ 4062 0.003967 207 ▒ 3945 0.003853 208 ▒ 4047 0.003952 209 ▒ 3923 0.003831 210 ▒ 4008 0.003914 211 ▒ 3938 0.003846 212 ▒ 4095 0.003999 213 ▒ 3943 0.003851 214 ▒ 4089 0.003993 215 ▒ 3965 0.003872 216 ▒ 3876 0.003785 217 ▒ 4022 0.003928 218 ▒ 4100 0.004004 219 ▒ 4097 0.004001 220 ▒ 4036 0.003941 221 ▒ 3963 0.003870 222 ▒ 4082 0.003986 223 ▒ 4106 0.004010 224 ▒ 4019 0.003925 225 ▒ 4049 0.003954 226 ▒ 3945 0.003853 227 ▒ 4023 0.003929 228 ▒ 4002 0.003908 229 ▒ 4029 0.003935 230 ▒ 4042 0.003947 231 ▒ 4048 0.003953 232 ▒ 4004 0.003910 233 ▒ 3884 0.003793 234 ▒ 3947 0.003854 235 ▒ 3953 0.003860 236 ▒ 4111 0.004015 237 ▒ 4042 0.003947 238 ▒ 4033 0.003938 239 ▒ 4059 0.003964 240 ▒ 3976 0.003883 241 ▒ 3996 0.003902 242 ▒ 4120 0.004023 243 ▒ 4098 0.004002 244 ▒ 3983 0.003890 245 ▒ 3971 0.003878 246 ▒ 4027 0.003933 247 ▒ 3931 0.003839 248 ▒ 4020 0.003926 249 ▒ 4024 0.003930 250 ▒ 3939 0.003847 251 ▒ 3935 0.003843 252 ▒ 3965 0.003872 253 ▒ 3937 0.003845 254 ▒ 3938 0.003846 255 ▒ 3843 0.003753 Total: 1024000 1.000000 Entropy = 7.999812 bits per byte. Optimum compression would reduce the size of this 1024000 byte file by 0 percent. Chi square distribution for 1024000 samples is 266.78, and randomly would exceed this value 50.00 percent of the times. Arithmetic mean value of data bytes is 127.5356 (127.5 = random). Monte Carlo value for Pi is 3.141973211 (error 0.01 percent). Serial correlation coefficient is 0.000399 (totally uncorrelated = 0.0).
euler357
MemberJorge,
Your ent output and speed looks good – no issues that I see.
Glad that you got it working – let me know how your 5G test goes.
BTW. The command line for running dieharder on the file is:
dieharder -a -g 201 -k 2 -s 1 -f input_file > dieharder.results.txt
Chris
https://cockrum.neteuler357
MemberI’m running Ubuntu 13.10 and rngd 4. I tried to reproduce your issue but can’t.
Here is a video of what happens when I try what you posted: http://youtu.be/nSD3MD2JTvE
Notice that when I run rngtest with the same block size as rngd, I get 0 failures. This is because rngd does the FIPS test and discards those blocks that are “failures”. This is the expected behavior.
Also, notice that my speed went down to 16k or so when using your rngd options. When I run it from init.d or directly without your options (i.e rngd -r /dev/TrueRNG -o /dev/random), I get the full speed back.
As for the -t 1 (timeout) option, I’m not 100% sure what this does and why you need it. It seems to coincide with the timing of your error message though (timeout = 1 sec, your error = 1 second intervals).
Chris
euler357
MemberFor a hardware random number generator, some percentage of FIPS failures is normal. If you weren’t getting any failures, that would be a problem. The reason is that in a random sequence, the patterns that rngtest is looking for happen randomly (see page 5 of the TrueRNG manual http://ubld.it/wp-content/uploads/2014/02/TrueRNG_Manual_rev2.pdf). There are also several papers published on testing hardware random number generators (for example: http://www.fdk.com/cyber-e/pdf/HM-RAE103.pdf) . It is only a problem if the failures are consistently high (over maybe 1% of the total). Here is a longer test showing what should happen:
rngtest 4
Copyright (c) 2004 by Henrique de Moraes Holschuh
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.rngtest: starting FIPS tests…
rngtest: entropy source drained
rngtest: bits received from input: 29500399616
rngtest: FIPS 140-2 successes: 1473873
rngtest: FIPS 140-2 failures: 1146
rngtest: FIPS 140-2(2001-10-10) Monobit: 133
rngtest: FIPS 140-2(2001-10-10) Poker: 144
rngtest: FIPS 140-2(2001-10-10) Runs: 441
rngtest: FIPS 140-2(2001-10-10) Long run: 434
rngtest: FIPS 140-2(2001-10-10) Continuous run: 1
rngtest: input channel speed: (min=1818181818.182; avg=28514767076.017; max=0.000)bits/s
rngtest: FIPS tests speed: (min=37.472; avg=85.994; max=90.396)Mibits/s
rngtest: Program run time: 328350153 microsecondsUsing the ent tool:
ent FILENAME
Entropy = 7.999984 bits per byte.Optimum compression would reduce the size
of this 10485760 byte file by 0 percent.Chi square distribution for 10485760 samples is 232.74, and randomly
would exceed this value 75.00 percent of the times.Arithmetic mean value of data bytes is 127.4826 (127.5 = random).
Monte Carlo value for Pi is 3.143464334 (error 0.06 percent).
Serial correlation coefficient is -0.000603 (totally uncorrelated = 0.0).Your rngtest results looks fine. Just to be sure, can you please stop rngd and run ent (ent FILENAME) on a 10MB file captured from the TrueRNG directly to see if the TrueRNG is ok?
(Assuming that you used our udev script or have manually disabled modemmanager — it sends junk out over the port to try to auto-detect a modem so you need to have this uninstalled or disabled)
Commands are:
dd if=/dev/TrueRNG of=FILENAME bs=1k count=10k iflag=fullblock
ent FILENAMEdd will take 3-4 minutes to run.
Chris
-
This reply was modified 8 years, 5 months ago by
-
AuthorPosts