📄 appendix-pkc.htm
字号:
<HTML><HEAD><TITLE>Description of Public Key Algorithms</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.55"><LINKREL="HOME"TITLE="The Open–source PKI Book"HREF="ospki-book.htm"><LINKREL="PREVIOUS"TITLE="Sample certificate request in TXT format"HREF="sample-cr-txt.htm"><LINKREL="NEXT"TITLE="How does El Gamal work?"HREF="how-elgamal-works.htm"></HEAD><BODYCLASS="APPENDIX"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLEWIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">The Open–source PKI Book: A guide to PKIs and Open–source Implementations</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="sample-cr-txt.htm">Prev</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom"></TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="how-elgamal-works.htm">Next</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="APPENDIX"><H1><ANAME="APPENDIX-PKC">Appendix C. Description of Public Key Algorithms</A></H1><DIVCLASS="TOC"><DL><DT><B>Table of Contents</B></DT><DT><AHREF="appendix-pkc.htm#HOW-RSA-WORKS">How does RSA work?</A></DT><DT><AHREF="how-elgamal-works.htm">How does El Gamal work?</A></DT></DL></DIV><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="HOW-RSA-WORKS">How does RSA work?</A></H1><P> We show a high–level though working description of RSA. Then, we give an example with easy to work with numbers. </P><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="HOW-RSA-WORKS-DESCRIPTION">Description</A></H2><P> To initialise RSA, follow the steps <P></P><OLTYPE="1"><LI><P> Pick two large primes, <TTCLASS="VARNAME">p</TT> and <TTCLASS="VARNAME">q</TT>. </P></LI><LI><P> Find <TTCLASS="VARNAME">N</TT> = <TTCLASS="VARNAME">p</TT> * <TTCLASS="VARNAME">q</TT>. <TTCLASS="VARNAME">N</TT> is the RSA modulus. </P></LI><LI><P> Let <TTCLASS="VARNAME">e</TT> be a number relatively prime to <TTCLASS="VARNAME">(p-1)*(q-1)</TT>. </P></LI><LI><P> Find <TTCLASS="VARNAME">d</TT>, so that <TTCLASS="VARNAME">d*e = 1 mod (p-1)*(q-1) </TT>. </P></LI><LI><P> The set <TTCLASS="VARNAME">(e, N)</TT> is the public key. Make it known to every one. </P><P> The set <TTCLASS="VARNAME">(d, N)</TT> is the private key. Keep it private and safe. </P></LI></OL> </P><P> To encrypt a message <TTCLASS="VARNAME">m</TT>, <P></P><OLTYPE="1"><LI><P> Make sure <TTCLASS="VARNAME">m < N</TT>, otherwise chop <TTCLASS="VARNAME">m</TT> in suitably small pieces and perform RSA on each individual piece. </P></LI><LI><P> Compute <TTCLASS="VARNAME">c = m ^ e mod N</TT> </P></LI><LI><P> <TTCLASS="VARNAME">c</TT> is the encrypted message </P></LI></OL> </P><P> To decrypt a ciphertext <TTCLASS="VARNAME">c</TT>, <P></P><OLTYPE="1"><LI><P> Compute <TTCLASS="VARNAME">m = c ^ d mod N</TT> </P></LI><LI><P> <TTCLASS="VARNAME">m</TT> is the original message </P></LI></OL> </P><P> To sign message <TTCLASS="VARNAME">m</TT>, <P></P><OLTYPE="1"><LI><P> Compute <TTCLASS="VARNAME">s = m ^ d mod N</TT> </P></LI><LI><P> <TTCLASS="VARNAME">s</TT> is the digital signature. Send along with message <TTCLASS="VARNAME">m</TT>. </P></LI></OL> </P><P> To verify signed message <TTCLASS="VARNAME">s</TT>, <P></P><OLTYPE="1"><LI><P> Compute <TTCLASS="VARNAME">m = s ^ e mod N</TT> </P></LI><LI><P> Check if <TTCLASS="VARNAME">m</TT> from above calculation is the same with message sent. </P></LI></OL> </P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="HOW-RSA-WORKS-EXAMPLE">Practical example</A></H2><P> TODO </P></DIV></DIV></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLEWIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="sample-cr-txt.htm">Prev</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="ospki-book.htm">Home</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="how-elgamal-works.htm">Next</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">Sample certificate request in TXT format</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"> </TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">How does El Gamal work?</TD></TR></TABLE></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -