summaryrefslogtreecommitdiff
path: root/pipermail/pycrypto/attachments/20110119/a39e32b8/attachment.html
diff options
context:
space:
mode:
Diffstat (limited to 'pipermail/pycrypto/attachments/20110119/a39e32b8/attachment.html')
-rw-r--r--pipermail/pycrypto/attachments/20110119/a39e32b8/attachment.html58
1 files changed, 58 insertions, 0 deletions
diff --git a/pipermail/pycrypto/attachments/20110119/a39e32b8/attachment.html b/pipermail/pycrypto/attachments/20110119/a39e32b8/attachment.html
new file mode 100644
index 0000000..97ae97c
--- /dev/null
+++ b/pipermail/pycrypto/attachments/20110119/a39e32b8/attachment.html
@@ -0,0 +1,58 @@
+<tt>
+&lt;!DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;&quot;-//W3C//DTD&nbsp;HTML&nbsp;4.01&nbsp;Transitional//EN&quot;&gt;<br>
+&lt;html&gt;<br>
+&nbsp;&nbsp;&lt;head&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta&nbsp;content=&quot;text/html;&nbsp;charset=ISO-8859-1&quot;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http-equiv=&quot;Content-Type&quot;&gt;<br>
+&nbsp;&nbsp;&lt;/head&gt;<br>
+&nbsp;&nbsp;&lt;body&nbsp;bgcolor=&quot;#ffffff&quot;&nbsp;text=&quot;#000000&quot;&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;On&nbsp;1/19/2011&nbsp;4:41&nbsp;AM,&nbsp;Legrandin&nbsp;wrote:<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;blockquote<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cite=&quot;mid:AANLkTi=+2NpC_rRbT4kG9rvhiROZ9q2LAWcUvrShtC0Z@mail.gmail.com&quot;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type=&quot;cite&quot;&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pre&nbsp;wrap=&quot;&quot;&gt;Hi&nbsp;all,<br>
+<br>
+I&nbsp;have&nbsp;noticed&nbsp;that&nbsp;-&nbsp;when&nbsp;generating&nbsp;an&nbsp;RSA&nbsp;key&nbsp;-&nbsp;a&nbsp;special&nbsp;check&nbsp;is<br>
+made&nbsp;to&nbsp;ensure&nbsp;that&nbsp;p&amp;lt;q.<br>
+&lt;/pre&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;/blockquote&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;That's&nbsp;interesting.&nbsp;This&nbsp;is&nbsp;what&nbsp;I&nbsp;found,&nbsp;which&nbsp;seems&nbsp;to&nbsp;suggest&nbsp;the<br>
+&nbsp;&nbsp;&nbsp;&nbsp;exact&nbsp;opposite:&lt;br&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;br&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&amp;gt;&amp;gt;&lt;br&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;To&nbsp;generate&nbsp;the&nbsp;primes&nbsp;&lt;var&gt;p&lt;/var&gt;&nbsp;and&nbsp;&lt;var&gt;q&lt;/var&gt;,&nbsp;generate&nbsp;a<br>
+&nbsp;&nbsp;&nbsp;&nbsp;random&nbsp;number&nbsp;of&nbsp;bit&nbsp;length&nbsp;b/2&nbsp;where<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;var&gt;b&lt;/var&gt;&nbsp;is&nbsp;the&nbsp;required&nbsp;bit&nbsp;length&nbsp;of&nbsp;&lt;var&gt;n&lt;/var&gt;;&nbsp;set&nbsp;the<br>
+&nbsp;&nbsp;&nbsp;&nbsp;low&nbsp;bit&nbsp;(this&nbsp;ensures&nbsp;the&nbsp;number&nbsp;is&nbsp;odd)&nbsp;and&nbsp;set&nbsp;the&nbsp;&lt;em&gt;two&lt;/em&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;highest&nbsp;bits&nbsp;(this&nbsp;ensures&nbsp;that&nbsp;the&nbsp;high&nbsp;bit&nbsp;of&nbsp;&lt;var&gt;n&lt;/var&gt;&nbsp;is<br>
+&nbsp;&nbsp;&nbsp;&nbsp;also&nbsp;set);&nbsp;check&nbsp;if&nbsp;prime&nbsp;(use&nbsp;the&nbsp;&lt;dfn&gt;Rabin-Miller&lt;/dfn&gt;&nbsp;test);<br>
+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;not,&nbsp;increment&nbsp;the&nbsp;number<br>
+&nbsp;&nbsp;&nbsp;&nbsp;by&nbsp;two&nbsp;and&nbsp;check&nbsp;again&nbsp;until&nbsp;you&nbsp;find&nbsp;a&nbsp;prime.&nbsp;This&nbsp;is&nbsp;&lt;var&gt;p&lt;/var&gt;.<br>
+&nbsp;&nbsp;&nbsp;&nbsp;Repeat&nbsp;for&nbsp;&lt;var&gt;q&lt;/var&gt;&nbsp;starting&nbsp;with&nbsp;a&nbsp;random&nbsp;integer&nbsp;of&nbsp;length<br>
+&nbsp;&nbsp;&nbsp;&nbsp;b-b/2.<br>
+&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;p&amp;lt;q,&nbsp;swap&nbsp;&lt;var&gt;p&lt;/var&gt;&nbsp;and&nbsp;&lt;var&gt;q&lt;/var&gt;&nbsp;(this&nbsp;only&nbsp;matters<br>
+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;you&nbsp;intend&nbsp;using&nbsp;the&nbsp;CRT&nbsp;form&nbsp;of&nbsp;the&nbsp;private&nbsp;key).<br>
+&nbsp;&nbsp;&nbsp;&nbsp;In&nbsp;the&nbsp;extremely&nbsp;unlikely&nbsp;event&nbsp;that&nbsp;p&nbsp;=&nbsp;q,&nbsp;check&nbsp;your&nbsp;random&nbsp;number<br>
+&nbsp;&nbsp;&nbsp;&nbsp;generator.&nbsp;Alternatively,&nbsp;instead&nbsp;of&nbsp;incrementing&nbsp;by&nbsp;2,&nbsp;just<br>
+&nbsp;&nbsp;&nbsp;&nbsp;generate&nbsp;another&nbsp;random&nbsp;number&nbsp;each&nbsp;time.<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;There&nbsp;are&nbsp;stricter&nbsp;rules&nbsp;in&nbsp;&lt;a<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;href=&quot;http://www.di-mgt.com.au/rsa_alg.html#x931&quot;&gt;ANSI&nbsp;X9.31&lt;/a&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;produce&nbsp;&lt;dfn&gt;strong&nbsp;primes&lt;/dfn&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;other&nbsp;restrictions&nbsp;on&nbsp;&lt;var&gt;p&lt;/var&gt;&nbsp;and&nbsp;&lt;var&gt;q&lt;/var&gt;&nbsp;to<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;minimize&nbsp;the&nbsp;possibility&nbsp;of&nbsp;known&nbsp;techniques&nbsp;being<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;used&nbsp;against&nbsp;the&nbsp;algorithm.&nbsp;There&nbsp;is&nbsp;much&nbsp;argument&nbsp;about&nbsp;this<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;topic.&nbsp;It&nbsp;is&nbsp;probably&nbsp;better&nbsp;just&nbsp;to&nbsp;use&nbsp;a&nbsp;longer&nbsp;key&nbsp;length.&lt;br&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;gt;&amp;gt;&lt;br&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;/p&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;Taken&nbsp;from&nbsp;&lt;a&nbsp;class=&quot;moz-txt-link-freetext&quot;&nbsp;href=&quot;http://www.di-mgt.com.au/rsa_alg.html&quot;&gt;http://www.di-mgt.com.au/rsa_alg.html&lt;/a&gt;&lt;br&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;br&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;That&nbsp;snippet&nbsp;suggests&nbsp;that&nbsp;p&amp;gt;q&nbsp;is&nbsp;desired&nbsp;if&nbsp;using&nbsp;the&nbsp;CRT&nbsp;form<br>
+&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;the&nbsp;private&nbsp;key.&nbsp;And&nbsp;we&nbsp;seem&nbsp;to&nbsp;be&nbsp;doing&nbsp;the&nbsp;exact&nbsp;opposite,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;swapping&nbsp;p&nbsp;and&nbsp;q&nbsp;if&nbsp;p&amp;gt;q.&lt;br&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;br&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&lt;br&gt;<br>
+&nbsp;&nbsp;&lt;/body&gt;<br>
+&lt;/html&gt;<br>
+
+</tt>