summaryrefslogtreecommitdiff
path: root/pipermail/pycrypto/attachments/20081108/98650707/attachment.html
diff options
context:
space:
mode:
Diffstat (limited to 'pipermail/pycrypto/attachments/20081108/98650707/attachment.html')
-rw-r--r--pipermail/pycrypto/attachments/20081108/98650707/attachment.html45
1 files changed, 45 insertions, 0 deletions
diff --git a/pipermail/pycrypto/attachments/20081108/98650707/attachment.html b/pipermail/pycrypto/attachments/20081108/98650707/attachment.html
new file mode 100644
index 0000000..500643b
--- /dev/null
+++ b/pipermail/pycrypto/attachments/20081108/98650707/attachment.html
@@ -0,0 +1,45 @@
+<tt>
+The&nbsp;first&nbsp;test&nbsp;I&nbsp;wrote&nbsp;may&nbsp;be&nbsp;a&nbsp;minor&nbsp;improvement&nbsp;on&nbsp;the&nbsp;simple&nbsp;test,&nbsp;as&nbsp;it&nbsp;merely&nbsp;ensures&nbsp;that&nbsp;the&nbsp;value&nbsp;returned&nbsp;by&nbsp;the&nbsp;rng&nbsp;is&nbsp;not&nbsp;always&nbsp;the&nbsp;same.&nbsp;(it&nbsp;is&nbsp;plausible&nbsp;that&nbsp;an&nbsp;rng&nbsp;might&nbsp;return&nbsp;the&nbsp;same&nbsp;data&nbsp;twice).&lt;br&gt;&lt;br&gt;For&nbsp;the&nbsp;second&nbsp;test&nbsp;I&nbsp;chose&nbsp;a&nbsp;large&nbsp;sample&nbsp;so&nbsp;that&nbsp;the&nbsp;average&nbsp;of&nbsp;all&nbsp;the&nbsp;data&nbsp;would&nbsp;be&nbsp;roughly&nbsp;128,&nbsp;I&nbsp;chose&nbsp;the&nbsp;large&nbsp;variation&nbsp;sort&nbsp;of&nbsp;out&nbsp;of&nbsp;the&nbsp;air,&nbsp;although&nbsp;the&nbsp;average&nbsp;of&nbsp;a&nbsp;large&nbsp;sample&nbsp;should&nbsp;(statistically&nbsp;speaking)&nbsp;be&nbsp;very&nbsp;close&nbsp;to&nbsp;128.&nbsp;After&nbsp;running&nbsp;about&nbsp;10&nbsp;tests&nbsp;the&nbsp;values&nbsp;were&nbsp;never&nbsp;outside&nbsp;of&nbsp;128&nbsp;+/-&nbsp;2.&lt;br&gt;<br>
+&lt;br&gt;I&nbsp;might&nbsp;try&nbsp;plotting&nbsp;a&nbsp;graph&nbsp;of&nbsp;(x,y)&nbsp;byte&nbsp;pairs&nbsp;and&nbsp;try&nbsp;calculating&nbsp;correlation&nbsp;co-efficients.&lt;br&gt;&lt;br&gt;&lt;div&nbsp;class=&quot;gmail_quote&quot;&gt;2008/11/8&nbsp;Sergey&nbsp;Chernov&nbsp;&lt;span&nbsp;dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a&nbsp;href=&quot;mailto:sergey.chernov@thrift.ru&quot;&nbsp;target=&quot;_blank&quot;&gt;sergey.chernov@thrift.ru&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;<br>
+&lt;blockquote&nbsp;class=&quot;gmail_quote&quot;&nbsp;style=&quot;border-left:&nbsp;1px&nbsp;solid&nbsp;rgb(204,&nbsp;204,&nbsp;204);&nbsp;margin:&nbsp;0pt&nbsp;0pt&nbsp;0pt&nbsp;0.8ex;&nbsp;padding-left:&nbsp;1ex;&quot;&gt;<br>
+I&amp;#39;m&nbsp;sorry&nbsp;if&nbsp;I&amp;#39;m&nbsp;telling&nbsp;something&nbsp;stupid,&nbsp;since&nbsp;I&nbsp;was&nbsp;not&nbsp;working&nbsp;with&nbsp;RNGs&nbsp;analysis&nbsp;for&nbsp;about&nbsp;18&nbsp;years,&nbsp;but&nbsp;from&nbsp;what&nbsp;I&nbsp;still&nbsp;remember.&nbsp;There&nbsp;was&nbsp;a&nbsp;test&nbsp;(in&nbsp;fact,&nbsp;series&nbsp;of&nbsp;tests)&nbsp;that&nbsp;surprisingly&nbsp;failed&nbsp;lot&nbsp;of&nbsp;these&nbsp;old&nbsp;times&nbsp;RNGs.&nbsp;It&amp;#39;s&nbsp;sort&nbsp;of&nbsp;N-dimensial&nbsp;bins&nbsp;histogram.&lt;br&gt;<br>
+<br>
+<br>
+&lt;br&gt;<br>
+The&nbsp;simplest&nbsp;was&nbsp;easy.&nbsp;Let&amp;#39;s&nbsp;talk&nbsp;pairs&nbsp;of&nbsp;N-bit&nbsp;randoms&nbsp;as&nbsp;(x,y)&nbsp;coordinates&nbsp;in&nbsp;a&nbsp;finite&nbsp;rectangle&nbsp;(using&nbsp;N&nbsp;or&nbsp;mod)&nbsp;and&nbsp;see&nbsp;whether&nbsp;they&nbsp;would&nbsp;tend&nbsp;to&nbsp;cluster.&nbsp;I&amp;#39;ve&nbsp;seen&nbsp;in&nbsp;my&nbsp;own&nbsp;eyes&nbsp;that&nbsp;one&nbsp;RNG&nbsp;that&nbsp;was&nbsp;supposed&nbsp;to&nbsp;be&nbsp;sufficient,&nbsp;was&nbsp;constantly&nbsp;generating&nbsp;a&nbsp;few&nbsp;small&nbsp;triangles&nbsp;leaving&nbsp;the&nbsp;rest&nbsp;clear&nbsp;:)&lt;br&gt;<br>
+<br>
+<br>
+&lt;br&gt;<br>
+So,&nbsp;the&nbsp;general&nbsp;test&nbsp;we&nbsp;were&nbsp;performed&nbsp;was&nbsp;kind&nbsp;of&nbsp;following.&nbsp;Let&amp;#39;s&nbsp;take&nbsp;N-dimensional&nbsp;cube&nbsp;and&nbsp;fill&nbsp;it&nbsp;with&nbsp;RNG&nbsp;series&nbsp;of&nbsp;size&nbsp;L,&nbsp;then&nbsp;check&nbsp;how&nbsp;even&nbsp;it&nbsp;fills&nbsp;the&nbsp;cube.&nbsp;Simplest&nbsp;case&nbsp;is&nbsp;to&nbsp;divide&nbsp;it&nbsp;to&nbsp;equal&nbsp;clusters&nbsp;(bins),&nbsp;so&nbsp;there&nbsp;should&nbsp;be,&nbsp;say,&nbsp;L/1000&nbsp;clusters&nbsp;least,&nbsp;calculate&nbsp;how&nbsp;many&nbsp;pseudo-random&nbsp;points&nbsp;hit&nbsp;each&nbsp;bin&nbsp;and&nbsp;see&nbsp;how&nbsp;plain&nbsp;is&nbsp;this&nbsp;histogram.&nbsp;It&nbsp;should&nbsp;not&nbsp;vary&nbsp;too&nbsp;much&nbsp;if&nbsp;the&nbsp;RNG&nbsp;is&nbsp;ok&nbsp;and&nbsp;L&nbsp;is&nbsp;big.&nbsp;We&nbsp;can,&nbsp;say,&nbsp;check&nbsp;the&nbsp;standard&nbsp;deviation.&nbsp;Better&nbsp;to&nbsp;check&nbsp;several&nbsp;bins&nbsp;size,&nbsp;using&nbsp;various&nbsp;random&nbsp;primes&nbsp;as&nbsp;factors&nbsp;for&nbsp;bins&nbsp;sizes.&nbsp;Then&nbsp;increment&nbsp;N&nbsp;and&nbsp;check&nbsp;it&nbsp;again.&lt;br&gt;<br>
+<br>
+<br>
+&lt;br&gt;<br>
+I&amp;#39;ve&nbsp;read&nbsp;in&nbsp;late&nbsp;80s&nbsp;that&nbsp;such&nbsp;test&nbsp;failed&nbsp;on&nbsp;some&nbsp;very&nbsp;famous&nbsp;RDBMS&nbsp;system&nbsp;of&nbsp;these&nbsp;old&nbsp;good&nbsp;times&nbsp;(as&nbsp;I&nbsp;remember,&nbsp;all&nbsp;dots&nbsp;filed&nbsp;64&nbsp;plans&nbsp;in&nbsp;the&nbsp;3(?)D&nbsp;cube&nbsp;or&nbsp;so).&lt;br&gt;<br>
+&lt;br&gt;<br>
+For&nbsp;sure&nbsp;there&nbsp;must&nbsp;be&nbsp;a&nbsp;plenty&nbsp;of&nbsp;better&nbsp;tests&nbsp;by&nbsp;now,&nbsp;but&nbsp;I&amp;#39;m&nbsp;not&nbsp;familiar&nbsp;with&nbsp;them.&lt;br&gt;<br>
+&lt;br&gt;<br>
+The&nbsp;probability&nbsp;you&nbsp;mentioned&nbsp;should&nbsp;be,&nbsp;as&nbsp;for&nbsp;me,&nbsp;1e-256.&nbsp;One&nbsp;famous&nbsp;mathematician,&nbsp;namely&nbsp;Kolmogorov,&nbsp;once&nbsp;said,&nbsp;that&nbsp;there&nbsp;is&nbsp;no&nbsp;such&nbsp;things&nbsp;as&nbsp;1e-100&nbsp;probability,&nbsp;there&nbsp;is&nbsp;only&nbsp;the&nbsp;impossibility&nbsp;:)&lt;br&gt;<br>
+&lt;br&gt;<br>
+Sergey&nbsp;Chernov&lt;br&gt;<br>
+&lt;a&nbsp;href=&quot;mailto:sergey.chernov@thrift.ru&quot;&nbsp;target=&quot;_blank&quot;&gt;sergey.chernov@thrift.ru&lt;/a&gt;&lt;br&gt;<br>
+&lt;br&gt;<br>
+&lt;br&gt;<br>
+&lt;br&gt;<br>
+08.11.2008,&nbsp;Χ&nbsp;1:12,&nbsp;Dwayne&nbsp;C.&nbsp;Litzenberger&nbsp;ΞΑΠΙΣΑΜ(Α):&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;<br>
+&lt;br&gt;<br>
+&lt;blockquote&nbsp;class=&quot;gmail_quote&quot;&nbsp;style=&quot;border-left:&nbsp;1px&nbsp;solid&nbsp;rgb(204,&nbsp;204,&nbsp;204);&nbsp;margin:&nbsp;0pt&nbsp;0pt&nbsp;0pt&nbsp;0.8ex;&nbsp;padding-left:&nbsp;1ex;&quot;&gt;<br>
+I&amp;#39;m&nbsp;not&nbsp;sure&nbsp;what&nbsp;your&nbsp;proposed&nbsp;TestNotAlwaysEqual&nbsp;test&nbsp;offers&nbsp;that&nbsp;SimpleTest&nbsp;does.&nbsp;&amp;nbsp;Presumably&nbsp;the&nbsp;purpose&nbsp;of&nbsp;this&nbsp;new&nbsp;test&nbsp;is&nbsp;to&nbsp;avoid&nbsp;the&nbsp;case&nbsp;where&nbsp;a&nbsp;correctly-functioning&nbsp;RNG&nbsp;returns&nbsp;two&nbsp;identical&nbsp;128-bit&nbsp;numbers&nbsp;in&nbsp;a&nbsp;row.&nbsp;&amp;nbsp;While&nbsp;that&nbsp;may&nbsp;be&nbsp;possible,&nbsp;I&amp;#39;m&nbsp;really&nbsp;not&nbsp;concerned&nbsp;about&nbsp;it,&nbsp;since&nbsp;according&nbsp;to&nbsp;my&nbsp;calculations*,&nbsp;the&nbsp;probability&nbsp;that&nbsp;SimpleTest&nbsp;fails&nbsp;is&nbsp;2**-128.&nbsp;&amp;nbsp;TestNotAlwaysEqual&nbsp;adds&nbsp;another&nbsp;test&nbsp;that&nbsp;can&nbsp;&amp;nbsp;fail&nbsp;in&nbsp;the&nbsp;same&nbsp;way,&nbsp;but&nbsp;with&nbsp;a&nbsp;probability&nbsp;of&nbsp;2**-1280.&nbsp;&amp;nbsp;I&nbsp;don&amp;#39;t&nbsp;see&nbsp;why&nbsp;that&nbsp;would&nbsp;be&nbsp;necessary.&lt;br&gt;<br>
+<br>
+<br>
+&lt;br&gt;<br>
+(*&nbsp;Someone&nbsp;please&nbsp;correct&nbsp;me&nbsp;if&nbsp;I&amp;#39;m&nbsp;wrong,&nbsp;since&nbsp;I&amp;#39;m&nbsp;still&nbsp;not&nbsp;very&nbsp;good&nbsp;at&nbsp;reasoning&nbsp;with&nbsp;probability.)&lt;br&gt;<br>
+&lt;/blockquote&gt;<br>
+&lt;br&gt;<br>
+&lt;/div&gt;&lt;/div&gt;&lt;br&gt;_______________________________________________&lt;br&gt;<br>
+pycrypto&nbsp;mailing&nbsp;list&lt;br&gt;<br>
+&lt;a&nbsp;href=&quot;mailto:pycrypto@lists.dlitz.net&quot;&nbsp;target=&quot;_blank&quot;&gt;pycrypto@lists.dlitz.net&lt;/a&gt;&lt;br&gt;<br>
+&lt;a&nbsp;href=&quot;http://lists.dlitz.net/cgi-bin/mailman/listinfo/pycrypto&quot;&nbsp;target=&quot;_blank&quot;&gt;http://lists.dlitz.net/cgi-bin/mailman/listinfo/pycrypto&lt;/a&gt;&lt;br&gt;<br>
+&lt;br&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;&lt;br&nbsp;clear=&quot;all&quot;&gt;&lt;br&gt;--&nbsp;&lt;br&gt;Sam&nbsp;Phippen&lt;br&gt;&lt;br&gt;Please&nbsp;avoid&nbsp;sending&nbsp;me&nbsp;Word&nbsp;or&nbsp;PowerPoint&nbsp;attachments.&lt;br&gt;See&nbsp;&lt;a&nbsp;href=&quot;http://www.gnu.org/philosophy/no-word-attachments.html&quot;&nbsp;target=&quot;_blank&quot;&gt;http://www.gnu.org/philosophy/no-word-attachments.html&lt;/a&gt;&lt;br&gt;<br>
+<br>
+
+</tt>